### 思路
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;
}