写一个将整数转换成任意进制的字符串的代码,用递归函数把值都存在栈内,然后该如何调出栈中的内容呀
【以下回答由 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](即当前的最低位的进制字符)相加,返回结果。递归函数的返回结果就是最终的转换后的进制字符串。
【相关推荐】