cf#516B. Equations of Mathematical Magic(二进制,位运算)

时间:2022-08-31 14:59:14

https://blog.csdn.net/zfq17796515982/article/details/83051495

题意:解方程:a-(a^x)-x=0 给出a的值,要求计算解(非负)的个数

题解:需要^和 - 起到相同的效果。

1^1=0 1-1=0

1^0=1 1-0=1

0^0=0 0-0=0,

0^1=1 0-1=-1

a的二进制位上为1时,x的二进制位上为1或者0,异或和减的效果相同。

a的二进制有几个1,就表示解的个数有2的几次方个

 #include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
while(~scanf("%d",&t))
{
while(t--)
{
long long n;
scanf("%lld",&n);
long long ans=;
int num=;
while(n)
{
if(n&)
{
n/=;
num++;
}
else
{
n/=;
}
}
ans=pow(,num);
printf("%lld\n",ans);
}
}
return ;
}