迴圈

輸入數字

判別數字是否為2的倍數

二進位為1

不是

二進位為0

數字除以2

重複直到數字變成0

因為二進制轉換運算與輸出為後進先出(LIFO)

 

 

所以採用堆疊紀錄

 

#include <iostream>
#include <stack>

using namespace std;

int main()
{ㄉㄜ
    int num;
    stack <char>binary;

    while(cin >> num)
    {
        while(num > 0)
        {
            if(num%2)
                binary.push('1');
            else
                binary.push('0');

            num/=2;
        }

        while(!binary.empty())
        {
            cout << binary.top();
            binary.pop();
        }

        cout << endl;
    }
    
    return 0;
}
 

arrow
arrow
    全站熱搜

    大神(偽) 發表在 痞客邦 留言(0) 人氣()