#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n;
int a;
while(cin>>n&&n)
{
int t=0;
int m;
a=n;
while(n%2==0) //当n为偶数时 ,直到二进制倒序第一个为1的位置
{
t++; //有多少0 t的值就为几
n=n/2;
}
if(a%2==0)
{
m=pow(2,t); //计算 Lowest Bit;
}
else m=1; //当n为奇数时,二进制末位即为1,所以Lowest Bit=1;
cout<<m<<endl;
}
return 0;
}
C++--ACM之杭电OJ--1196 二进制问题
猜你喜欢
转载自blog.csdn.net/William_Sunrise/article/details/81635277
今日推荐
周排行