计算在C ++中与x的XOR大于x的较小值
我们给定一个整数,即x,任务是计算小于x的较小数字,其与x的XOR值将大于XOR值。
异或运算的真值表如下
输入-intx=11
输出-与x的XOR大于x的较小值的计数为-4
说明-
给定x为11,这意味着我们需要找到x小于x的x的XOR。所以数字是1XOR11<11(FALSE),2XOR11<11(FALSE),3XOR11<11(FALSE),4XOR11>11(TRUE),5XOR11>11(TRUE),6XOR11>11(TRUE),7XOR11>11(TRUE),8XOR11<11(FALSE),9XOR11<11(FALSE),10XOR11<11(FALSE)。
输入-:intx=12
输出-与x的XOR大于x的较小值的计数为-11
说明-
x的值为12,这意味着我们需要找到x小于x的x的XOR。所以数字是1XOR12>12(TRUE),2XOR12>12(TRUE),3XOR12>12(TRUE),4XOR12<12(FALSE),5XOR12<12(FALSE),6XOR12<12(FALSE),7XOR12<12(FALSE),8XOR12<12(FALSE),9XOR12<12(FALSE),10XOR12<12(FALSE),11XOR12<12(假)。
以下程序中使用的方法如下
输入一个整数元素并将其存储在名为x的变量中。
将num的值传递给函数以进行进一步处理
创建一个临时变量计数以存储结果和一个名为num的变量并将其设置为1。
启动循环,直到x!=0
在循环内部,检查IFx%2==0,然后将计数设置为count+num
将num设置为num*2并将x设置为x/2
返回计数
打印结果
示例
#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