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
",ans);
28         }
29     }
30     return 0;
31 }
原文地址:https://www.cnblogs.com/fqfzs/p/9940573.html