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

ค้นหาแฝดทั้งหมดที่มีผลรวมเป็นศูนย์ใน C++


ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่จะหา triplet ในอาร์เรย์ซึ่งมีผลรวมเท่ากับจำนวนที่กำหนด

มาดูขั้นตอนการแก้ปัญหากัน

  • สร้างอาร์เรย์ด้วยข้อมูลจำลอง

  • เขียนลูปภายใน 3 วงสำหรับองค์ประกอบ 3 รายการที่วนซ้ำจนจบอาร์เรย์

    • เพิ่มสามองค์ประกอบ

    • เปรียบเทียบผลรวมด้วย 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

บทสรุป

หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น