首先我们要找到转化为二进制后的最低位
然后只需找到最低位的位数
也就是求2的n次幂
然后用快速幂的方法来求即可!!
#include<iostream>
using namespace std;
#define ll long long
ll quickpow(ll x, ll n) {
ll res = 1;
while (n > 0) {
if (n & 1)res = res * x;
x = x * x;
n = (n >> 1);
}
return res;
}
int main() {
int a;
for (; cin >> a;) {
if (a >= 1 && a <= 100) {
int b = 0;
while (!(a & 1)) {
a = (a >> 1);
++b;
}
int h = quickpow(2, b);
cout << h << endl;
}
}
return 0;
}