C++ 十进制数与任意进制数转换算法实现

用 C++ 语言设计十进制数 N 与其他 d 进制数的转换是计算机实现计算的基本问题,其解决方法很多,其中一个简单算法基于下列原理:

N = (N div d) * d +(N mod d)

其中 div 是整除运算,mod 是求余运算。

例如 (2018)10= (3742)8= (7E2)16

输入形式

一个十进制数以及 d 进制数 (2<=d<=16)

输出形式

该十进制数所对应 d 进制数

样例输入

2018 16

样例输出

7E2

样例说明

代码实现

#include <iostream>
#include <stack>
using namespace std;

void decimalToD(int N, int d) {
    stack<int> s;
    while (N != 0) {
        s.push(N % d);
        N /= d;
    }
    while (!s.empty()) {
        int digit = s.top();
        s.pop();
        if (digit < 10) {
            cout << digit;
        } else {
            char ch = 'A' + (digit - 10);
            cout << ch;
        }
    }
}

int main() {
    int N, d;
    cin >> N >> d;
    decimalToD(N, d);
    return 0;
}

评分标准

  • 内容:代码完整、逻辑清晰、易于理解
  • 效率:代码运行效率高
  • 可读性:代码格式规范、注释清晰
C++ 十进制数与任意进制数转换算法实现

原文地址: https://www.cveoy.top/t/topic/paBW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录