cf#516B. Equations of Mathematical Magic(二进制,位运算)
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的几次方个
1 #include<bits/stdc++.h> 2 using namespace std; 3 int main() 4 { 5 int t; 6 while(~scanf("%d",&t)) 7 { 8 while(t--) 9 { 10 long long n; 11 scanf("%lld",&n); 12 long long ans=0; 13 int num=0; 14 while(n) 15 { 16 if(n&1) 17 { 18 n/=2; 19 num++; 20 } 21 else 22 { 23 n/=2; 24 } 25 } 26 ans=pow(2,num); 27 printf("%lld\n",ans); 28 } 29 } 30 return 0; 31 }