• 数制转换(暑假每日一题 16)


    求任意两个不同进制非负整数的转换( 2 2 2 进制 ∼ 16 16 16 进制),所给整数在 i n t int int 范围内。

    不同进制的表示符号为 ( 0 , 1 , … , 9 , a , b , … , f ) (0,1,…,9,a,b,…,f) 019abf或者 ( 0 , 1 , … , 9 , A , B , … , F ) (0,1,…,9,A,B,…,F) 019ABF

    输入格式
    输入只有一行,包含三个整数 a , n , b a,n,b anb a a a 表示其后的 n n n a a a 进制整数, b b b 表示欲将 a a a 进制整数 n n n 转换成 b b b 进制整数。

    a , b a,b a,b 是十进制整数。

    数据可能存在包含前导零的情况。

    输出格式
    输出包含一行,该行有一个整数为转换后的 b b b 进制数。

    输出时字母符号全部用大写表示,即 ( 0 , 1 , … , 9 , A , B , … , F ) (0,1,…,9,A,B,…,F) 019ABF

    数据范围
    2 ≤ a , b ≤ 16 , 2≤a,b≤16, 2a,b16,
    给定的 a a a 进制整数 n n n 在十进制下的取值范围是 [ 1 , 2147483647 ] [1,2147483647] [1,2147483647]

    输入样例:

    15 Aab3 7
    
    • 1

    输出样例:

    210306
    
    • 1

    #include
    
    using namespace std;
    
    int a, b;
    string s;
    
    int get(char & c){
        
        if('0' <= c && c <= '9') return c - '0';
        return tolower(c) - 'a' + 10;
    }
    
    int getTen(int a, string s){
        
        int res = 0;
        for(int i = 0; i < s.size(); i++)
            res = res * a + get(s[i]);
            
        return res;
    }
    
    string trans(int n, int b){
        
        string res;
        char c;
        while(n){
            int x = n % b;
            if(x < 10) c = x + '0';
            else c = 'A' + (x - 10);
            res = c + res;
            n /= b;
        }
        return res;
    }
    
    int main(){
        
        cin >> a >> s >> b;
        
        int x = getTen(a, s);
        
        cout << trans(x, b) << endl;
        
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
  • 相关阅读:
    正则表达式
    基于深度学习的图像识别技术研究
    Fastdfs之集群安装
    Qt应用软件【文件篇】json文件读写
    Scrum和Kanban方法的结合:Scrumban的实施指南
    为 Serverless Devs 插上 Terraform 的翅膀,实现企业级多环境部署(上)
    「Python入门」python操作MySQL和SqlServer
    分享一个AI工程师从入门到精通学习路径
    android系统目录结构
    静态搜索iOS动态链接函数的调用位置
  • 原文地址:https://blog.csdn.net/qq_46456049/article/details/126170727