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