fork download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. #define MAX 32
  6. typedef unsigned MaNhiPhan;
  7. struct Stack
  8. {
  9. int top;
  10. MaNhiPhan e[MAX];
  11. };
  12.  
  13. //khoi tao ngan xep rong
  14. void initStack(Stack &S)
  15. {
  16. S.top = -1;
  17. }
  18.  
  19. //kiem tra rong
  20. int empty(Stack S)
  21. {
  22. return (S.top == -1);
  23. }
  24.  
  25. int full(Stack S)
  26. {
  27. return (S.top == MAX-1);
  28. }
  29.  
  30. //bo xung 1 phan tu vao dinh
  31. int push(Stack &S, MaNhiPhan elem)
  32. {
  33. if (full(S))
  34. return 0;
  35. else
  36. {
  37. S.top += 1;
  38. S.e[S.top] = elem;
  39. return 1;
  40. }
  41. }
  42.  
  43. //lay 1 pt ow dinh
  44. int pop(Stack &S, MaNhiPhan &elem)
  45. {
  46. if (empty(S))
  47. {
  48. return 0;
  49. }
  50. else
  51. {
  52. elem = S.e[S.top];
  53. S.top--;
  54. return 1;
  55. }
  56. }
  57.  
  58. //doi thap phan sang nhiphan
  59.  
  60. void change(unsigned long N, Stack &S)
  61. {
  62. initStack(S);
  63. while(N>0 && push(S, N%2))
  64. N /= 2;
  65. }
  66.  
  67. //hien thi ma nhi phan
  68. void display(Stack S)
  69. {
  70. MaNhiPhan elem;
  71. while(pop(S, elem))
  72. cout<<elem<<" ";
  73. }
  74.  
  75. int main(int argc, char const *argv[])
  76. {
  77. unsigned long N=256;
  78. Stack S;
  79. change(N,S);
  80. display(S);
  81. return 0;
  82. }
Success #stdin #stdout 0.01s 5280KB
stdin
Standard input is empty
stdout
1 0 0 0 0 0 0 0 0