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; }