Computer >> Máy Tính >  >> Lập trình >> C ++

Đếm các cặp hợp lệ trong mảng thỏa mãn các điều kiện nhất định trong C ++

Chúng ta được cho với một mảng arr [] gồm N phần tử. Mục đích là để tìm số lượng tất cả các cặp hợp lệ (Arr [i], Arr [j]) tuân theo các điều kiện nhất định. Các cặp Arr [i], Arr [j] không hợp lệ nếu -

  • Arr [i] ==Arr [j]
  • Arr [i] + Arr [j] chẵn
  • i + j <120

Lưu ý - Arr [i], Arr [j] và Arr [j], Arr [i] sẽ được tính là một cặp. Cặp hợp lệ có i! =J Hãy cùng hiểu với các ví dụ.

Đầu vào

Arr[]= { 3,2,1,2,4,3 } N=4

Đầu ra

Count of valid pairs: 2

Giải thích

Các cặp hợp lệ là -

Arr[0] & Arr[4] → (3,3) here Arr[i]==Arr[j] & 3+3 is even also i!=j and i+j<120
Arr[1] & Arr[3] → (2,2) here Arr[i]==Arr[j] & 2+2 is even also i!=j and i+j<120

Đầu vào

Arr[]= { 1,2,3,4,5,6 } N=6

Đầu ra

Count of valid pairs: 0

Giải thích

Không có sự lặp lại của các phần tử. Không có cặp loại (a, a) nào khả thi khi i! =J.

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

  • Chúng tôi lấy một mảng số nguyên Arr [] được khởi tạo bằng các số ngẫu nhiên.
  • Lấy một biến n lưu trữ độ dài của Arr [].
  • Các cặp hàm count (int arr [], int n) nhận một mảng, độ dài của nó làm đầu vào và trả về các cặp hợp lệ và đáp ứng các điều kiện mong muốn.
  • Traverse mảng bằng cách sử dụng hai vòng lặp for cho mỗi phần tử của cặp.
  • Vòng lặp bên ngoài từ 0 <=i
  • Tính tổng arr [i], arr [j] giả sử =(arr [i] + aar [j]).
  • Để kiểm tra xem một cặp có hợp lệ hay không. So sánh nếu i! =J và tổng% 2 ==0 còn i + j <120.
  • Bây giờ, hãy kiểm tra xem arr [i] ==arr [j]. Số lượng tăng dần.
  • Ở cuối tất cả các vòng đếm sẽ có tổng số cặp hợp lệ
  • Trả về kết quả là số lượng.

Ví dụ

#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++) //j=i+1 we don't have to check i!=j{
         int sum=arr[i]+arr[j];
         //valid pairs have i!=j
         if( sum%2==0 && i+j<120){
            if( arr[i]==arr[j] ) //valid pair{
               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;
}

Đầu ra

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