Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

หา Triplet ที่มีผลรวมเป็นศูนย์ใน C++

ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่หา 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

สรุป

หากคุณมีคำถามในบทช่วยสอนนี้ ให้ระบุในส่วนความคิดเห็น