这也是一道比较简单的入门题~是算出输入数二进制表示的1的位置
题目链接:题目
解题思路大致如下:
- 让输入数对2取余,再让输入数除以2,直到它变为0。
- 因为题目正好是求倒序的位置所以直接做第一步不用再进行顺序颠倒的工作。
代码如下:
#include <iostream>
using namespace std;
int main()
{
int t,n,count1,flag;
cin>>t;
while(t--)
{
cin>>n;
flag=1;
count1=0;
while(n)
{
if(n%2)
{
if(flag)
cout<<count1;
else
cout<<" "<<count1;
flag=0;
}
n=n/2;
count1++;
}
cout<<endl;
}
return 0;
}