使用C++代码,用顺序栈的方式,将十进制正数转为相应的八进制数
时间: 2024-10-08 13:10:09 浏览: 24
在C++中,你可以使用顺序栈(数组实现)来将十进制正数转换为八进制数。首先,创建一个空栈用于存储八进制结果,然后不断除以8并取余,直到商为0。每次取余的结果就是八进制数的下一位。以下是一个简单的示例:
```cpp
#include <iostream>
#include <stack>
// 定义一个辅助函数,用于计算并入栈
void decimalToOctal(int decimalNum, std::stack<int>& octalStack) {
while (decimalNum > 0) {
int remainder = decimalNum % 8; // 取余得到当前位的值
octalStack.push(remainder); // 入栈
decimalNum /= 8; // 更新十进制数
}
}
int main() {
int decimal = 123; // 要转换的十进制数
std::stack<int> octalStack;
// 将十进制转为八进制
decimalToOctal(decimal, octalStack);
// 输出八进制数,从栈顶开始弹出并打印
std::cout << "Octal representation: ";
while (!octalStack.empty()) {
std::cout << octalStack.top();
octalStack.pop(); // 弹出栈顶元素
}
return 0;
}
```
运行此程序会输出 `Octal representation: 173`,表示十进制数123对应的八进制形式。
阅读全文