本文共 837 字,大约阅读时间需要 2 分钟。
题目大意:
给出a,要求找出a−(a⊕x)−x=0的非负整数解x的个数
题解:
做的时候打出了表但却没有很快想到正确的规律
只觉得是
2,4,4,8、2,4,4,8、4,8,8,16
2,4,4,8、4,8,8,16
4,8,8,16
16
经提点后才知道,是这个数的二进制中含的1的个数的2倍。
还有一点,异或运算^的优先级很低,要用括号括起来运算。
#include#include #include #define maxx 1005using namespace std;#define ll long longint main(){ int T; cin>>T; while(T--) { ll ans=1; ll a; cin>>a; while(a) { if(a&1)ans*=2; a>>=1; } cout< <
打表程序
#include#include using namespace std;typedef long long ll;int main(){ for(int n=1;n<=1000;++n) { ll ans=0; for(ll j=0;j<=n;++j) if((n-(n^j))==j)//注意这里^要括起来 ans++; bitset<20> x(n); cout< <<"---"< <<"------"< <
转载地址:http://qkfgf.baihongyu.com/