#include <iostream>
using namespace std;
#define MAX 32
typedef unsigned MaNhiPhan;
struct Stack
{
int top;
MaNhiPhan e[MAX];
};
//khoi tao ngan xep rong
void initStack(Stack &S)
{
S.top = -1;
}
//kiem tra rong
int empty(Stack S)
{
return (S.top == -1);
}
int full(Stack S)
{
return (S.top == MAX-1);
}
//bo xung 1 phan tu vao dinh
int push(Stack &S, MaNhiPhan elem)
{
if (full(S))
return 0;
else
{
S.top += 1;
S.e[S.top] = elem;
return 1;
}
}
//lay 1 pt ow dinh
int pop(Stack &S, MaNhiPhan &elem)
{
if (empty(S))
{
return 0;
}
else
{
elem = S.e[S.top];
S.top--;
return 1;
}
}
//doi thap phan sang nhiphan
void change(unsigned long N, Stack &S)
{
initStack(S);
while(N>0 && push(S, N%2))
N /= 2;
}
//hien thi ma nhi phan
void display(Stack S)
{
MaNhiPhan elem;
while(pop(S, elem))
cout<<elem<<" ";
}
int main(int argc, char const *argv[])
{
unsigned long N=256;
Stack S;
change(N,S);
display(S);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgTUFYIDMyCnR5cGVkZWYgdW5zaWduZWQgTWFOaGlQaGFuOwpzdHJ1Y3QgU3RhY2sKewoJaW50IHRvcDsKCU1hTmhpUGhhbiBlW01BWF07Cn07CgovL2tob2kgdGFvIG5nYW4geGVwIHJvbmcKdm9pZCBpbml0U3RhY2soU3RhY2sgJlMpCnsKCVMudG9wID0gLTE7Cn0KCi8va2llbSB0cmEgcm9uZwppbnQgZW1wdHkoU3RhY2sgUykKewoJcmV0dXJuIChTLnRvcCA9PSAtMSk7Cn0KCmludCBmdWxsKFN0YWNrIFMpCnsKCXJldHVybiAoUy50b3AgPT0gTUFYLTEpOwp9CgovL2JvIHh1bmcgMSBwaGFuIHR1IHZhbyBkaW5oCmludCBwdXNoKFN0YWNrICZTLCBNYU5oaVBoYW4gZWxlbSkKewoJaWYgKGZ1bGwoUykpCgkJcmV0dXJuIDA7CgllbHNlCgl7CgkJUy50b3AgKz0gMTsKCQlTLmVbUy50b3BdID0gZWxlbTsKCQlyZXR1cm4gMTsKCX0KfQoKLy9sYXkgMSBwdCBvdyBkaW5oCmludCBwb3AoU3RhY2sgJlMsIE1hTmhpUGhhbiAmZWxlbSkKewoJaWYgKGVtcHR5KFMpKQoJewoJCXJldHVybiAwOwoJfQoJZWxzZQoJewoJCWVsZW0gPSBTLmVbUy50b3BdOwoJCVMudG9wLS07CgkJcmV0dXJuIDE7Cgl9Cn0KCi8vZG9pIHRoYXAgcGhhbiBzYW5nIG5oaXBoYW4KCnZvaWQgY2hhbmdlKHVuc2lnbmVkIGxvbmcgTiwgU3RhY2sgJlMpCnsKCWluaXRTdGFjayhTKTsKCXdoaWxlKE4+MCAmJiBwdXNoKFMsIE4lMikpCgkJTiAvPSAyOwp9CgovL2hpZW4gdGhpIG1hIG5oaSBwaGFuCnZvaWQgZGlzcGxheShTdGFjayBTKQp7CglNYU5oaVBoYW4gZWxlbTsKCXdoaWxlKHBvcChTLCBlbGVtKSkKCQljb3V0PDxlbGVtPDwiICI7Cn0KCmludCBtYWluKGludCBhcmdjLCBjaGFyIGNvbnN0ICphcmd2W10pCnsKCXVuc2lnbmVkIGxvbmcgTj0yNTY7CglTdGFjayBTOwoJY2hhbmdlKE4sUyk7CglkaXNwbGF5KFMpOwoJcmV0dXJuIDA7Cn0=