这一题,输入的数转换成二进制,输出二进制位为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; }
原文地址:http://blog.csdn.net/qq_25425023/article/details/45918119