• SDUT 1252 进制转换


     

     

    进制转换

    Time Limit: 1000 ms Memory Limit: 65536 KiB

    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

    提示:本题思路和上题几乎一样,多了个负数操作,多了个10以上进制的操作,10以上进制操作只需将数字转化为字符使之进栈即可,负数只需提前输出负号将其按正数处理即可。

    代码实现如下(g++):
    #include<bits/stdc++.h>
    
    using namespace std;
    
    int main()
    {
        int n,r;
        while(cin>>n>>r)
        {
            stack<char>s;
            if(n==0)
            {
                cout<<"0"<<endl;//0的任何进制都是0
                continue;
            }
            else if(n<0)
            {
                cout<<"-";
                n*=-1;//如果n是负数,将其变为正数同正数处理
            }
            int t;
            while(n)
            {
                t=n%r;
                if(t<10)
                {
                    t+='0';
                    s.push(t);
                }
                else
                {
                    t=t+'A'-10;
                    s.push(t);
                }
                n/=r;
            }
            while(!s.empty())
            {
                cout<<s.top();
                s.pop();
            }
            cout<<endl;
        }
        return 0;
    }
    
    
    /***************************************************
    Result: Accepted
    Take time: 0ms
    Take Memory: 196KB
    ****************************************************/
  • 相关阅读:
    Golang的类型转换实战案例
    Golang的基础数据类型-布尔型
    Golang的运算符优先级实操案例
    Golang的单目(一元)运算符-地址操作符和接收操作符
    基于Ambari的WebUI部署kafka服务
    HBase集群优化篇
    HBase Master的高可用实战案例
    HBase 数据迁移实战案例
    HBase API实战案例
    MySQL数据源接入DBus
  • 原文地址:https://www.cnblogs.com/jkxsz2333/p/9487844.html
Copyright © 2020-2023  润新知