计算满足C ++中给定条件的数组中的有效对

我们给了N个元素的数组arr []。目的是找到遵循某些条件的所有有效对(Arr [i],Arr [j])的计数。如果-配对Arr [i],Arr [j]无效-

  • Arr [i] == Arr [j]

  • Arr [i] + Arr [j]是偶数

  • i + j <120

-编曲[I],编曲[j]与编曲[j]时,编曲[I]将被计为一对。有效对具有i!= j让我们通过示例进行了解。

输入值

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

输出结果

Count of valid pairs: 2

说明

有效对是-

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

输入值

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

输出结果

Count of valid pairs: 0

说明

没有元素的重复。i!= j时,不可能有一对类型(a,a)。

以下程序中使用的方法如下

  • 我们采用用随机数初始化的整数数组Arr []。

  • 取一个变量n,它存储Arr []的长度。

  • 函数countPairs(int arr [],int n)接受一个数组,将其长度作为输入并返回有效且满足所需条件的对。

  • 对数组中的每个元素使用两个for循环遍历数组。

  • 外循环从0 <= i <n-1,内循环i <j <n

  • 计算arr [i]和arr [j]之和assum =(arr [i] + aar [j])。

  • 检查一对是否有效。比较i!= j和sum%2 == 0还是i + j <120。

  • 现在检查arr [i] == arr [j]。增量计数。

  • 在所有循环结束时,计数将具有有效的对总数

  • 返回计数结果。

示例

#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;
}

输出结果

Valid pairs in array:
a:1b: 1
a:2b: 2
a:4b: 43
猜你喜欢