### 思路
1. **初始化栈**:创建一个空栈用于存储转换后的八进制数的每一位。
2. **十进制转八进制**:将十进制数不断除以8,并将余数依次入栈,直到商为0。
3. **输出八进制数**:将栈中的元素依次出栈并打印,得到八进制数。
### 伪代码
```
function decimalToOctal(decimal):
initialize an empty stack S
while decimal > 0:
push S, decimal % 8
decimal = decimal // 8
while stack is not empty:
print pop S
```
### C++代码
#include <iostream>
#include <stack>
void decimalToOctal(int decimal) {
std::stack<int> S;
if (decimal == 0) {
std::cout << 0;
return;
}
while (decimal > 0) {
S.push(decimal % 8);
decimal /= 8;
}
while (!S.empty()) {
std::cout << S.top();
S.pop();
}
}
int main() {
int decimal;
std::cin >> decimal;
decimalToOctal(decimal);
return 0;
}