计算满足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(intarr[],intn)接受一个数组,将其长度作为输入并返回有效且满足所需条件的对。
对数组中的每个元素使用两个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