//这道题挺简单的
//题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=383
#include<iostream>
using namespace std;
int a[10000];
int main()
{
int i, k, m, n;
int t;
cin >> t;
while (t--)
{
cin >> m;
n = m;
k = 0;
while (n > 0)
{
a[k] = n % 2;
n = n / 2;
k++;
}
k--;
for (i = 0; i < k; i++)
{
if (a[i])cout << i<<" ";
}
cout << k << endl;
}
return 0;
}

本文提供了一道来自浙江大学在线评测系统(OJ)的简单编程题的解答思路及C++代码实现。该题要求输入一个十进制数并输出其二进制表示中1的位置。
1万+

被折叠的 条评论
为什么被折叠?



