关于#python#的问题:用递归函数把值都存在栈内

写一个将整数转换成任意进制的字符串的代码,用递归函数把值都存在栈内,然后该如何调出栈中的内容呀

img

【以下回答由 GPT 生成】

优化后的代码:

class Stack:
    def __init__(self):
        self.items = []

    def isEmpty(self):
        return self.items == []

    def push(self, item):
        self.items.append(item)

    def pop(self):
        return self.items.pop()

    def peek(self):
        return self.items[len(self.items) - 1]

    def size(self):
        return len(self.items)

def tostr(n, base):
    string = "0123456789ABCDEF"
    s = Stack()
    binstr = ""
    if n < base:
        return string[n]
    else:
        return tostr(n // base, base) + string[n % base]

print(tostr(n=10, base=2))

调出栈中的内容可以通过递归函数的返回值来实现。在优化后的代码中,当n小于base时,直接返回string[n],即当前的最低位的进制字符。当n大于等于base时,递归调用tostr函数来将n // base转化为相应进制的字符串,然后与string[n % base](即当前的最低位的进制字符)相加,返回结果。递归函数的返回结果就是最终的转换后的进制字符串。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^