计算C ++中偶数和奇数乘积的有序对数
我们给了一个n个正数的数组。目标是用arr [x]和arr [y]的乘积是偶数或奇数来计数有序对(arr [x],arr [y])。对(arr [i],arr [j])和(arr [j],arr [i]被算作单独的对。
我们将对每个对数使用两个for循环遍历数组。现在计算乘积,如果它是偶数乘以2的偶数递增计数,否则是奇数乘积的2的递增计数。
让我们通过示例来理解。
输入-Arr [] = {1,1,2,3} N = 4
输出-偶数产品对的数量:6奇数产品对的数量:6
说明-有效的奇数对是-
Arr[0] & Arr[1] → (1,1) Arr[1] & Arr[0] → (1,1) count=2Arr[0] & Arr[3] → (1,3) Arr[3] & Arr[0] → (3,1) count=2
Arr[1] & Arr[3] → (1,3) Arr[3] & Arr[1] → (3,1) count=2 Total=6
Valid even product pairs are:
Arr[0] & Arr[2] → (1,2) Arr[2] & Arr[0] → (2,1) count=2
Arr[1] & Arr[2] → (1,2) Arr[2] & Arr[1] → (2,1) count=2
Arr[2] & Arr[3] → (2,3) Arr[3] & Arr[2] → (3,2) count=2 Total=6
输入-Arr [] = {2,2,2} N = 3
输出-偶数对的计数-6奇数对的计数-0
说明-有效的偶数产品对是-
Arr[0] & Arr[1] → (2,2) Arr[1] & Arr[0] → (2,2) count=2Arr[1] & Arr[2] → (2,2) Arr[2] & Arr[1] → (2,2) count=2
Arr[2] & Arr[3] → (2,2) Arr[3] & Arr[2] → (2,2) count=2 Total=6
No odd product as all elements are even.
以下程序中使用的方法如下
我们采用以随机数初始化的整数数组arr []。
取一个变量n,它存储Arr []的长度。
函数countPairs(int arr [],int n)接受一个数组,将其长度作为输入并打印带有偶数和奇数乘积的对数。
对数组中的每个元素使用两个for循环遍历数组。
外循环从0 <= i <n-1,内循环i <j <n
检查arr [i] * arr [j]%2 == 0。偶数乘积对2的递增计数1作为arr [i],arr [j]和arr [j],arr [i]将是两对。
如果以上条件为假,则将奇数乘积对的count2加2。
在所有循环结束时,count1将具有偶数对的总数,而count2将具有奇数对的总数
打印count1和count2作为结果。
示例
#include <bits/stdc++.h>using namespace std;
void countPairs(int arr[], int n){
int count1=0; //even product pairs
int count2=0; //odd product pairs
int prod=1;
for(int i=0;i<n-1;i++){
for(int j=i+1;j<n;j++){
prod=arr[i]*arr[j];
if(prod%2==0) //product is even
{ count1+=2; } //(a,b) and (b,a) as two pairs
else
{ count2+=2; }
}
}
cout<<"Even Product pairs: "<<count1;
cout<<endl<<"Odd Product pairs: "<<count2;
}
int main(){
int arr[] = { 1,2,7,3 };
int n = sizeof(arr) / sizeof(int);
countPairs(arr, n);
return 0;
}
输出结果
如果我们运行上面的代码,它将生成以下输出-
Even Product pairs: 6Odd Product pairs: 6
以上是 计算C ++中偶数和奇数乘积的有序对数 的全部内容, 来源链接: utcz.com/z/335078.html