C++ 中計算 XOR 與 x 大於 x 的較小值的個數
給定一個整數,例如 x,任務是計算小於 x 的較小數字,這些數字與 x 進行 XOR 運算後得到的結果大於 x。
XOR 運算的真值表如下所示
| A | B | A XOR B |
| 0 | 0 | 0 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 1 | 0 |
輸入 − int x = 11
輸出 − XOR 與 x 大於 x 的較小值的個數為 - 4
解釋 −
給定 x 為 11,這意味著我們需要找到 x 與小於 x 的數字的 XOR 結果。因此,這些數字為 1 XOR 11 < 11(FALSE),2 XOR 11 < 11(FALSE),3 XOR 11 < 11(FALSE),4 XOR 11 > 11(TRUE),5 XOR 11 > 11(TRUE),6 XOR 11 > 11(TRUE),7 XOR 11> 11(TRUE),8 XOR 11< 11(FALSE),9 XOR 11 < 11(FALSE),10 XOR 11 < 11(FALSE)。
輸入-: int x = 12
輸出 − XOR 與 x 大於 x 的較小值的個數為 - 11
解釋 −
給定 x 為 12,這意味著我們需要找到 x 與小於 x 的數字的 XOR 結果。因此,這些數字為 1 XOR 12 > 12(TRUE),2 XOR 12 > 12(TRUE),3 XOR 12 > 12(TRUE),4 XOR 12 < 12(FALSE),5 XOR 12 < 12(FALSE),6 XOR 12 < 12(FALSE),7 XOR 12< 12(FALSE),8 XOR 12< 12(FALSE),9 XOR 12 < 12(FALSE),10 XOR 12 < 12(FALSE),11 XOR 12 < 12(FALSE)。
下面程式中使用的思路如下
輸入一個整數元素並將其儲存在一個名為 x 的變數中。
將 num 的值傳遞給函式以進行進一步處理
建立一個名為 count 的臨時變數來儲存結果,並建立一個名為 num 的變數並將其設定為 1。
啟動迴圈 WHILE 直到 x != 0
在迴圈內,檢查 IF x%2 == 0,然後將 count 設定為 count + num
將 num 設定為 num * 2,將 x 設定為 x / 2
返回 count
列印結果
示例
#include
using namespace std;
int XOR_smaller(int x){
int count = 0;
int num = 1;
while (x != 0){
if (x%2 == 0){
count = count + num;
}
num = num*2;
x = x/2;
}
return count;
}
int main(){
int x = 20;
cout<<"Count of smaller values whose XOR with x is greater than x are: "<<XOR_smaller(x);
return 0;
}輸出
如果我們執行以上程式碼,它將生成以下輸出:
Count of smaller values whose XOR with x is greater than x are: 11
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP