使用 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=2
Arr[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=2
Arr[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。將 count1(偶數積對計數)加 2,因為 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: 6
Odd Product pairs: 6

更新於: 2020年8月29日

145 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告