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
广告