快乐星空Maker 2023-10-13 20:39 采纳率: 23.1%
浏览 4

C++语言进制转换相加

进制转换相加
小蜗蜗现在有两个不同进制的数,他需要计算出这两个数相加后在十进制下的结果。
输入第一行两个数字 a, b 表示这两个数是几进制的,接下来两行给出两个数字 i, j。
如果数字超过十进制,会用 A,B,C,D,E,F 表示十进制下的 10,11,12,13,14,15。
输入格式
· 第一行两个整数 a,b。
· 第二行一个整数表示 i, j。
· 第三行一个整数表示 i, j。
输出格式
· 一行一个数字,表示答案。
样例输入
8 16
123
FA
样例输出
333
数据规模
· 对于所有数据,保证 2≤a,b≤16, i,j 的位数 ≤10≤10。

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-10-15 01:28
    关注

    【以下回答由 GPT 生成】

    这个问题可以通过将输入的两个数分别转换为十进制,然后相加得到结果,最后将结果转换为指定进制来解决。下面是一个C++程序的示例实现:

    #include <iostream>
    #include <string>
    #include <cmath>
    
    using namespace std;
    
    int charToNum(char c) {
        if (c >= '0' && c <= '9') {
            return c - '0';
        } else {
            return c - 'A' + 10;
        }
    }
    
    int convertToDecimal(string num, int base) {
        int result = 0;
        int power = 0;
        for (int i = num.length() - 1; i >= 0; i--) {
            result += charToNum(num[i]) * pow(base, power);
            power++;
        }
        return result;
    }
    
    string convertToBase(int num, int base) {
        string result = "";
        while (num > 0) {
            int digit = num % base;
            if (digit >= 0 && digit <= 9) {
                result = to_string(digit) + result;
            } else {
                result = (char)('A' + digit - 10) + result;
            }
            num /= base;
        }
        return result;
    }
    
    int main() {
        int a, b;
        cin >> a >> b;
        string num1, num2;
        cin >> num1 >> num2;
    
        int decimal1 = convertToDecimal(num1, a);
        int decimal2 = convertToDecimal(num2, b);
    
        int sum = decimal1 + decimal2;
    
        string result = convertToBase(sum, 10);
    
        cout << result << endl;
    
        return 0;
    }
    

    这个程序首先定义了一个charToNum函数,用于将字符转换为对应的数字。然后定义了两个转换函数convertToDecimalconvertToBase,分别用于将输入的数转换为十进制和指定进制的字符串。最后在main函数中,从标准输入读取输入的值,调用转换函数得到相加的结果,并输出结果。

    希望这个程序能帮到你!如果还有其他问题,请随时提问。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 10月13日

悬赏问题

  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error