计算在C ++中与x的和等于与x的XOR的数字

我们是一个数字X。目标是找到0到X之间的数字,这些数字与X的和等于与X的XOR。

我们将通过遍历否来做到这一点。从i = 0到i <= X,对于每个i,如果(i + X == i ^ X),则递增计数。

让我们通过示例来理解。

输入-X = 6

输出-X的总和= X的XOR = 2

说明-数字仅是0和1。

输入-X = 20

输出-X的总和= X的XOR = 8

说明-数字是0 1 2 3 8 9 10 11

以下程序中使用的方法如下

  • 我们取整数X。

  • 函数sumisXOR(int x)接受x并返回一个数字计数,该数字与x的和等于与x的xor相等。

  • 将初始计数设为0。

  • 从i = 0到i <= x遍历。

  • 如果i + x == i ^ x。增量计数

  • 在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

以上是 计算在C ++中与x的和等于与x的XOR的数字 的全部内容, 来源链接: utcz.com/z/327059.html

回到顶部