ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่หา triplet ในอาร์เรย์ที่ผลรวมเท่ากับตัวเลขที่กำหนด
มาดูขั้นตอนในการแก้ปัญหา
- สร้างอาร์เรย์ด้วยข้อมูลจำลอง
- เขียนลูปซ้อนสามชั้นสำหรับสามองค์ประกอบซึ่งวนจนถึงท้ายของอาร์เรย์
- บวกสามองค์ประกอบ
- เปรียบเทียบผลรวมกับตัวเลขที่กำหนด
- ถ้าทั้งสองเท่ากัน ให้พิมพ์องค์ประกอบและหยุดลูป
ตัวอย่างโค้ด
#include <bits/stdc++.h>
using namespace std;
bool findTriplet(int arr[], int arr_size, int sum) {
for (int i = 0; i < arr_size - 2; i++) {
for (int j = i + 1; j < arr_size - 1; j++) {
for (int k = j + 1; k < arr_size; k++) {
if (arr[i] + arr[j] + arr[k] == sum) {
cout << arr[i] << " " << arr[j] << " " << arr[k] << endl;
return true;
}
}
}
}
return false;
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7};
findTriplet(arr, 7, 12);
return 0;
}
ผลลัพธ์
ถ้าคุณรันโปรแกรมด้านบน คุณจะได้ผลลัพธ์ดังนี้
1 4 7
สรุป
หากคุณมีคำถามในบทช่วยสอนนี้ ให้ระบุในส่วนความคิดเห็น