간단한 십진법을 이진법으로 변환하는 문제이다. 그러나 거꾸로 변환할 필요가 없어 더 간단하다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void input_case(vector<int>&test)
{
int i, T, temp;
cin >> T;
for (i = 0; i < T; i++)
{
cin >> temp;
test.push_back(temp);
}
return;
}
void find_answer(vector<int>& test)
{
int i, current, j;
for (i = 0; i < test.size(); i++)
{
j = 0;
current = test[i];
while (current != 0)
{
if (current % 2 == 1)
{
cout << j << " ";
}
current /= 2;
j++;
}
cout << "\n";
}
return;
}
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
vector<int> test;
input_case(test);
find_answer(test);
return 0;
}