计算满足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