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;elsecout<<" ";cout<<pos;}n/=2;pos++;}cout<<endl;}}