`
linest
  • 浏览: 150047 次
  • 性别: Icon_minigender_1
  • 来自: 内蒙古
社区版块
存档分类
最新评论

ZOJ-2417 二进制最低位的1

    博客分类:
  • acm
 
阅读更多
2417:给一个10进制数,求它二进制后,从最低位1开始构成的数。

88的二进制为1011000   1000结果是8
26的二进制为11010     10结果是2

循环取余,找到第一个1为止。
#include<stdio.h>
#include<iostream>
using namespace std;

int cal(int dec)
{
	int val=1;
	while(dec)
	{
		if(dec%2==1)
			break;
		else
			val*=2;
		dec/=2;
	}
	return val;
}

int main()
{	
	int n;
	while(1)
	{
		cin>>n;
		if(n==0)
			break;
		cout<<cal(n)<<endl;
	}
}





分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics