C++ 中計算按位異或結果為奇數的配對數量
給定一個整數陣列,任務是計算可以使用給定陣列值形成的所有配對的總數,使得配對上的異或運算結果為奇數。
異或運算的真值表如下所示
| A | B | A XOR B |
| 0 | 0 | 0 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 1 | 0 |
輸入 − int arr[] = {2, 8, 1, 5, 11}
輸出 − 按位異或結果為奇數的配對數量為 - 6
解釋
解釋 −
| a1 | a2 | a1 XOR a2 |
| 2 | 8 | 10 |
| 2 | 1 | 3 |
| 2 | 5 | 7 |
| 2 | 11 | 9 |
| 8 | 1 | 9 |
| 8 | 5 | 13 |
| 8 | 11 | 3 |
| 1 | 5 | 4 |
| 1 | 11 | 10 |
| 5 | 11 | 14 |
下面程式中使用的方案如下
輸入一個整數元素陣列來形成配對
計算陣列的大小,並將資料傳遞給函式以進行進一步處理。
建立一個臨時變數 count 來儲存形成的配對,其異或運算結果為奇數。
從 i=0 開始迴圈 FOR,直到陣列的大小。
現在計算陣列中奇數配對的數量為 count * (size - count)。
返回奇數
列印結果
示例
#include <iostream>
using namespace std;
//Count pairs with Bitwise XOR as ODD number
int XOR_Odd(int arr[], int size){
int count = 0;
for (int i = 0; i < size; i++){
if (arr[i] % 2 == 0){
count++;
}
}
int odd = count * (size-count);
return odd;
}
int main(){
int arr[] = { 6, 1, 3, 4, 8, 9};
int size = sizeof(arr) / sizeof(arr[0]);
cout<<"Count of pairs with Bitwise XOR as ODD number are: "<<XOR_Odd(arr, size);
return 0;
}輸出
如果我們執行以上程式碼,它將生成以下輸出:
Count of pairs with Bitwise XOR as ODD number are: 9
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP