将十进制转成其他进制形式,所用的代码结构和代码语言或转换规律应该是怎样的?

1.写程序,将十进制转换成r进制,r的值是2,8,16。
【测试用例1】
Input n:20
Input r:8
output:24
【测试用例2】
Input n:30
Input r:16
output:1E

【测试用例3】
Input n:30
Input r:2
output:11110

代码实现如下,望采纳

#include <iostream>
#include <string>
#include <unordered_map>

using namespace std;

// 定义 r 进制的映射表
unordered_map<int, char> r_map = {
    {0, '0'}, {1, '1'}, {2, '2'}, {3, '3'}, {4, '4'}, 
    {5, '5'}, {6, '6'}, {7, '7'}, {8, '8'}, {9, '9'}, 
    {10, 'A'}, {11, 'B'}, {12, 'C'}, {13, 'D'}, {14, 'E'}, {15, 'F'}
};

// 定义函数,用于将十进制数转换为 r 进制
string decimal_to_r(int n, int r) {
    string res;
    while (n) {
        // 获取余数并加入结果字符串
        res = r_map[n % r] + res;
        // 更新 n 的值
        n /= r;
    }
    return res;
}

int main() {
    int n, r;
    cin >> n >> r;
    cout << decimal_to_r(n, r) << endl;
    return 0;
}

代码输出结果

Input n: 20
Input r: 8
output: 24

Input n: 30
Input r: 16
output: 1E

Input n: 30
Input r: 2
output: 11110

就是不断对进制就行求余,然后将余数倒序输出就好。如果余数大于等于10,就转化为大写字符。可以用递归,写起来比较简单