ZOJ-1383 二进制找1

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;
	}

}

你可能感兴趣的:(二进制)