#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 二进制问题
最新推荐文章于 2021-12-30 23:29:06 发布