Description
ljw这几天给大一同学讲课的时候,觉得自己太菜了,于是他做了一道无聊的数学题, 但是他觉得这题太难了,所以他把问题交给了聪明的你,你能帮他解决这个问题吗? 问题如下: 给你一个方程:n−(n^x)−x=0 (其中 ^ 表示两个数异或,并不是表示幂次符号哦) 现在给你n的值,问有多少种x的取值使得方程成立(数据保证n在2的30次方范围内)
Input
多组输入数据。 每组输入数据包含一个整数n,含义如题。
Output
每组输入数据输出一个整数,表示解的个数。
Accepted Code
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long a;
while (cin >> a)
{
long long ans = 1;
while (a)
{
if (a & 1)
{
ans<<=1;
}
a >>= 1;
}
cout << ans << endl;
}
return 0;
}

