利用棧進行進制轉換

//十進制轉化爲二進制,利用棧先進後出原理
#include <cstdio>
#include <stack>
using namespace std;
int main()
{
 int n;
 stack<int>  s;
 while (scanf("%d",&n)!=EOF)
 {
  while (!s.empty())   s.pop();//一個一個清空棧頂元素
    //ClearStack(&s);        爲什麼這裏不能用直接清空??用法錯誤???
 
  while(n>0)
  {
   s.push(n%2);
   n/=2;
  }
  while (!s.empty())
  {
   printf("%d",s.top());//一個一個輸出棧頂元素,後進先出
   s.pop();//一個一個清空棧頂元素
  }
  puts("");//利用getchat();吸收作用 ,puts輸出作用
 return 0;
}





 

發佈了70 篇原創文章 · 獲贊 4 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章