使用c++实现用栈实现十进制转八进制
时间: 2023-11-20 13:12:04 浏览: 34
好的,以下是使用 C++ 实现十进制转八进制的代码:
```c++
#include <iostream>
#include <stack>
using namespace std;
string decimal_to_octal(int decimal) {
stack<int> s;
while(decimal > 0) {
int remainder = decimal % 8;
s.push(remainder);
decimal /= 8;
}
string octal = "";
while(!s.empty()) {
octal += to_string(s.top());
s.pop();
}
return octal;
}
int main() {
int decimal = 123;
string octal = decimal_to_octal(decimal);
cout << "Decimal " << decimal << " is " << octal << " in octal." << endl;
return 0;
}
```
在这个实现中,我们使用了 `stack` 类型来作为栈的数据结构,并使用 `while` 循环来计算十进制数的每一位。在计算出每一位的余数之后,我们将余数压入栈中。然后,我们使用另一个 `while` 循环来将栈中的元素弹出并转换成字符串,以便输出八进制数。
上面的示例代码中,我们将十进制数 123 转换成八进制数,并输出结果。您可以根据需要修改 `main` 函数中的 `decimal` 变量来尝试不同的输入值。