python汉诺塔算法如何添加统计移动次数的代码?

2025-04-18 00:30:27
推荐回答(2个)
回答1:

方案1:命令窗口运行文件方式

s=0
def move(n,a,b,c):
    global s
    if n==1:
        s=s+1
        print(a,'-->',c)
        return 
    move(n-1,a,c,b)
    move(1,a,b,c)
    move(n-1,b,a,c)
n = int(input('num: '))
move(n,'A','B','C')
print('total: %s'%s)

方案2:交互模式(建立函数文件jichu.py,在交互窗口调用文件中函数move)

s=0
def move(n,a,b,c):
    global s
    if n==1:
        s=s+1
        print(a,'-->',c,'\t%s' % s)
        return 
    move(n-1,a,c,b)
    move(1,a,b,c)
    move(n-1,b,a,c)

回答2:

建议复习一下关于变量的生命周期。这里Num函数中的i在每次Num调用的时候重新赋值并加一打印,最后函数调用完成,i变量被释放。

把Num函数改成下面:

i = 0

def Num():
global i
i=i+1
print('cishu',i)