计算在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
说明-数字是0123891011
以下程序中使用的方法如下
我们取整数X。
函数sumisXOR(intx)接受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