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