帮忙解决下。。。提交后Compilation Error
题目是让你把输入的整数转换成2进制数,输出2进制数中1的位置比如
13
0 2 3
自己写的代码如下:
#include<iostream>
#include<cmath>
#include<vector>
using namespace std;
int main()
{
int m;
long n;
vector<int> lin;
cin>>m;
for(int k=0;k<m;k++)
{
cin>>n;
for(int i=0;i<=15;i++)
{
if(pow(2,i)>n)
{
lin.push_back(i-1);
n=n-pow(2,i-1);
i=0;
}
if(pow(2,i)==n)
{
lin.push_back(i);
break;
}
}
for(int j=lin.size()-1;j>=0;j--)
cout<<lin[j]<<" ";
cout<<endl;
lin.clear();
}
return 0;
}
多谢了!!!