zoukankan      html  css  js  c++  java
  • [ACM] hdu 2031 进制转换

    Problem Description

    输入一个十进制数N,将它转换成R进制数输出。

    Input

    输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。

    Output

    为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。

    Sample Input

    7 2
    23 12
    -4 3
    

    Sample Output

    111
    1B
    -11
    

    Author

    lcy

    解题思路:

    使用栈,因为有负数,所以符号单独输出。

    代码:

    #include <iostream>
    #include <cmath>
    #include <stack>
    using namespace std;
    int main()
    {
        int r,n;
        while(cin>>n>>r)
        {
            int mul;
            mul=n/abs(n*1.0);
            n=abs(n*1.0);
            stack<int>s;
            while(n)
            {
                s.push(n%r);
                n/=r;
            }
            if(mul==-1)
                cout<<'-';
            while(!s.empty())
            {
                char m;
                if(s.top()>=10)
                {
                    m='A'+s.top()-10;
                    cout<<m;
                }
                else
                    cout<<s.top();
                s.pop();
            }
            cout<<endl;
        }
        return 0;
    }
    

  • 相关阅读:
    POJ 最小球覆盖 模拟退火
    POJ 1379 模拟退火
    PythonTip(2)
    PythonTip(1)
    LA 3353 最优巴士线路设计
    LA 4254 贪心
    判断分析
    因子分析——因子得分
    因子分析——应用
    因子分析——因子旋转
  • 原文地址:https://www.cnblogs.com/sr1993/p/3697971.html
Copyright © 2011-2022 走看看