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

ZOJ-1383 二进制找1

    博客分类:
  • acm
 
阅读更多
1383: 给一整数,输出二进制下1的位置。
The position of the least significant bit is 0

Sample Input

1
13


Sample Output

0 2 3


由于从最小端开始逆序输出,因此采用取模的方法。
由于不知道最后一位什么时候输出,因此空格放在头部判断。
#include<stdio.h>
#include<iostream>
using namespace std;

int main()
{
	int d;
	int n;
	int pos=0;
	bool ishead=true;

	cin>>d;
	for(int i=0;i<d;i++)
	{
		cin>>n;
		ishead=true;
		pos=0;
		while(n)
		{
			if(n%2==1)
			{
				if(ishead)
					ishead=false;
				else
					cout<<" ";
				cout<<pos;
			}
			n/=2;
			pos++;
		}
		cout<<endl;
	}

}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics