c++用顺序栈将输入十进制数转换为N进制数的代码
时间: 2024-10-23 15:15:57 浏览: 34
在 C++ 中,你可以使用顺序栈(如数组或动态数组)来将十进制数转换为任意进制数。这里有一个简单的示例,展示了如何将十进制整数转换为 N 进制字符串:
```cpp
#include <iostream>
#include <vector>
#include <string>
// 定义函数将十进制转成N进制
std::string decimalToBaseN(int decimal, int base) {
std::vector<char> digits('0', '9'); // 用于存储每一位的数字
if (decimal == 0) return "0";
std::string result;
while (decimal > 0) {
int remainder = decimal % base; // 取余数
result = digits[remainder] + result; // 将余数加到结果前面
decimal /= base; // 更新原始数值
}
return result;
}
int main() {
int decimalNum = 123; // 要转换的十进制数
int base = 5; // 目标进制
std::string nBaseNum = decimalToBaseN(decimalNum, base);
std::cout << "十进制数 " << decimalNum << " 转换为 " << base << " 进制为: " << nBaseNum << '\n';
return 0;
}
```
在这个代码中,`decimalToBaseN` 函数通过循环依次取除以目标基数的余数,并添加到结果字符串的开头,实现了十进制到 N 进制的转换。
阅读全文