题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1196
方法:求二进制数
思路:就是求二进制数,但是不需要完全求出,我只需要知道在哪一位第一次出现了1即可,有点类似于二分求幂中分解二进制数的思路。
难点:无
#include<iostream>
using namespace std;
int main()
{
int num;
while(cin>>num)
{
if(num == 0) break;
int ans = 1;
while(num%2 == 0)
{
num /= 2;
ans *= 2;
}
cout<<ans<<endl;
}
}