【发布时间】:2020-11-14 12:48:07
【问题描述】:
我发现很难以递归格式编写下面提到的代码(Int to Binary)。请帮助我清除我的疑问,即我缺少什么来实现这种转换。
代码如下:
class Stack:
def __init__(self):
self.number = []
def push(self, number):
self.number.append(number)
def pop(self):
return self.number.pop()
def is_empty(self):
return self.number == []
def int_to_binary(number):
s = Stack()
while number > 0:
remainder = number % 2
s.push(remainder)
number = number // 2
set =''
while not s.is_empty():
set += str(s.pop())
print(set)
print(int_to_binary(243))
【问题讨论】:
-
在递归代码中,您将状态保存在(调用)堆栈上。在您的迭代代码中,您已经将状态保存在堆栈中。只需移除堆栈并将状态移动到调用堆栈即可。
-
请记住,递归版本可能会导致大量数字的堆栈溢出
标签: python recursion stack iteration