Discuss / Python / 我的代码问题在哪里?为什么会出现栈溢出错误?

我的代码问题在哪里?为什么会出现栈溢出错误?

Topic source

自由灵异

#1 Created at ... [Delete] [Delete and Lock User]
def Hanoi(n, source, bridge, target):
    if n==1:
        print ('%s --> %s' % (source, target))
##        return   # 如果这里没有return 会报栈溢出错误
    Hanoi(n-1, source, target, bridge)
    print ('%s --> %s' % (source, target))
    Hanoi(n-1, bridge, source, target)
##    return #这里的return无所谓 有没有都不影响栈溢出错误
##    换if else模式就没有问题
print ('******************')
Hanoi(1,'A','B','C')
print ('******************')
Hanoi(2,'A','B','C')
print ('******************')
Hanoi(3,'A','B','C')

我自己尝试debug了一下,在if语句后面有问题。具体的请看注释。

哪位老师能解释一下 为什么会出现栈溢出错误?

自由灵异

#2 Created at ... [Delete] [Delete and Lock User]

已经解决。


  • 1

Reply