这一题,输入的数转换成二进制,输出二进制位为1的位置。
下面的AC代码:
#include <iostream>
using namespace std;
int main()
{
int count, a[100];
int i, j, n;
scanf("%d", &n);
while(n--)
{
cin >> i;
j = 0; count = 0;
while(1)
{
if(i % 2)
count++;
a[j++] = i % 2;
i /= 2;
if(!i)
break;
}
for(int k = 0; k < j; k++)
{
if(a[k])
{
count != 1 ? cout << k << ' ' : cout << k << endl;
count--;
}
}
}
return 0;
}