#include<stdio.h>
#include<stdlib.h>
#define StackSize 50
typedef struct
{
int a[StackSize];
int top;
}SeqStack;
void InitStack(SeqStack *S)
{
S->top = -1;
}
int Push(SeqStack *S, int x)
{
if(S->top == StackSize-1)
{
printf("栈满\n");
}
else
{
S->top++;
S->a[S->top] = x;
}
return 0;
}
int Pop(SeqStack *S, int *x)
{
if(S->top == -1)
{
printf("空栈\n");
}
else
{
*x = S->a[S->top];
S->top--;
}
return 0;
}
int GetTop(SeqStack *S, int *x)
{
if(S->top == -1)
{
printf("栈为空");
}
else
{
*x = S->a[S->top];
printf("%d",*x);
}
return 0;
}
int TTB(SeqStack S, int x)
{
while(x > 0)
{
if(x%2 == 0)
{
Push(&S,0);
}
else
{
Push(&S,1);
}
x = x/2;
}
while(S.top > -1)
{
GetTop(&S, &x);
S.top--;
}
return 0;
}
int main()
{
SeqStack S;
int j;
InitStack(&S);
scanf_s("%d", &j);
TTB(S,j);
system("pause");
return 0;
}