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

นับคู่ที่ถูกต้องในอาร์เรย์ตามเงื่อนไขที่กำหนด ใน C++

ได้รับอาร์เรย์ Arr[] N ตัว ต้องการนับคู่ (i,j) ที่ i≠j และ:

  • Arr[i] == Arr[j]
  • Arr[i] + Arr[j] เป็นเลขคู่
  • i + j < 120

หมายเหตุ: (i,j) และ (j,i) นับเป็นคู่เดียว

ตัวอย่าง

อินพุต: Arr[] = {3, 2, 1, 2, 4, 3}, N = 6

เอาต์พุต: 2

คู่ที่ถูกต้อง: (3,3) และ (2,2)

อินพุต: Arr[] = {1, 2, 3, 4, 5, 6}

เอาต์พุต: 0 (ไม่มีตัวซ้ำ)

แนวทาง

  • ลูปซ้อน i=0..n-1, j=i+1..n-1
  • คำนวณ sum = arr[i]+arr[j]
  • ตรวจสอบ sum%2==0 && i+j<120 && arr[i]==arr[j]

ตัวอย่างโค้ด C++

#include <bits/stdc++.h>
using namespace std;

int countPairs(int arr[], int n) {
    int count = 0;
    for (int i = 0; i < n; i++) {
        for (int j = i+1; j < n; j++) {
            int sum = arr[i] + arr[j];
            if (sum % 2 == 0 && i + j < 120) {
                if (arr[i] == arr[j]) {
                    count++;
                    cout << endl << "a:" << arr[i] << "b: " << arr[j];
                }
            }
        }
    }
    return count;
}

int main() {
    int arr[] = {1, 2, 3, 2, 4, 1, 4};
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << endl << "Valid pairs in array: " << countPairs(arr, n);
    return 0;
}

ผลลัพธ์

Valid pairs in array: a:1b: 1 a:2b: 2 a:4b: 43