cf#516B. Equations of Mathematical Magic(二進位制,位運算)
阿新 • • 發佈:2018-11-10
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 return0; 31 }