C++中計算其與x的和等於與x的異或的數字


我們有一個數字X。目標是在0到X之間找到那些與X相加等於與X進行異或運算的數字。

我們將透過遍歷從i=0到i<=X的數字來實現這一點,對於每個i,如果(i+X==i^X),則計數器加1。

讓我們用例子來理解。

輸入 - X=6

輸出 - 與X相加等於與X異或的數字個數:2

解釋 - 數字只有0和1。

輸入 - X=20

輸出 - 與X相加等於與X異或的數字個數:8

解釋 - 數字是0 1 2 3 8 9 10 11

下面程式中使用的方案如下

  • 我們取整數X。

  • 函式sumisXOR(int x)接收x並返回與x相加等於與x異或的數字個數。

  • 將初始計數設定為0。

  • 從i=0遍歷到i<=x。

  • 如果i+x==i^x。計數器加1

  • 在for迴圈結束時,計數器將包含所需的結果…

  • 返回計數並列印。

示例

 線上演示

#include <bits/stdc++.h>
#include <math.h>
using namespace std;
int sumisXOR(int x){
   int count = 0;
   for (int i = 0; i <= x; i++){
      if((i+x)==(i^x))
         { count++; }
   }
   return count;
}
int main(){
   int X = 15;
   int nums=sumisXOR(X);
   cout <<endl<<"Count of numbers whose sum with X == XOR with X: "<<nums;
   return 0;
}

輸出

如果我們執行以上程式碼,它將生成以下輸出:

Count of numbers whose sum with X == XOR with X: 1

更新於:2020年10月31日

116次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.