acm 进制转换 2031

#include <iostream>
using namespace std;
#include <stack>
int main()
{
    char map[]="ABCDEF";
    int num,R,sign;
    stack<int>s;
    while(cin >> num >> R)
    {
        sign=0;
        if(num<0)
        {
            sign=1;
            num=-num;
        }
        while(num)
        {
            s.push(num%R);
            num/=R;
        }
        if(sign==1)
            cout << "-";
        while(!s.empty())
        {
            if(s.top()<10)
            {
               cout << s.top();
            }
            else
            {
                cout << map[s.top()-10];
            }
            s.pop();
        }
        cout << endl;
    }
    return 0;
}
posted @ 2012-04-29 23:06  潘小雨  Views(267)  Comments(0Edit  收藏  举报