NEFU-1834

NEFU-1834

/ 0评 / 907次 / 0

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

发表回复

您的电子邮箱地址不会被公开。

你好 No.66803