C++ 十进制数与任意进制数转换算法实现
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;
}
评分标准
- 内容:代码完整、逻辑清晰、易于理解
- 效率:代码运行效率高
- 可读性:代码格式规范、注释清晰
原文地址: https://www.cveoy.top/t/topic/paBW 著作权归作者所有。请勿转载和采集!