E02734: 十进制到八进制
stack, http://cs101.openjudge.cn/practice/02734/
把一个十进制正整数转化成八进制。
输入
一行,仅含一个十进制表示的整数a(0 < a < 65536)。
输出
一行,a的八进制表示。
样例输入
9
样例输出
11
要将一个十进制正整数转换为八进制,可以通过“除基取余法”实现。通过不断除以8并将余数压入栈中的方式来实现。然后,将栈中的元素依次出栈,构成八进制数的各个位。
python
decimal = int(input()) # 读取十进制数
# 创建一个空栈
stack = []
# 特殊情况:如果输入的数为0,直接输出0
if decimal == 0:
print(0)
else:
# 不断除以8,并将余数压入栈中
while decimal > 0:
remainder = decimal % 8
stack.append(remainder)
decimal = decimal // 8
# 依次出栈,构成八进制数的各个位
octal = ""
while stack:
octal += str(stack.pop())
print(octal)