想显示汉诺塔的移动次数,为什么次数总是不对
def hanoi(n,x,y,z):global times
times=1
if n==1:
print(x,'-->',z)
times+=1
else:
hanoi(n-1,x,z,y)
print(x,'-->',z)
times+=1
hanoi(n-1,y,x,z)
n=int(input('层数:'))
hanoi(n,'A','B','C')
print('次数:%d' % times) 因为每次函数重新开始执行的时候 times 都会被重新赋值为 1 你把times定义在函数外面就好。
times=0
def hanoi(n,x,y,z):
global times
if n==1:
print(x,'-->',z)
times+=1
else:
hanoi(n-1,x,z,y)
print(x,'-->',z)
times+=1
hanoi(n-1,y,x,z)
n=int(input('层数:'))
hanoi(n,'A','B','C')
print('次数:%d' % times)
楼上的大神已经说啦,如此这般!!! xiangjianshinan 发表于 2020-5-2 20:26
楼上的大神已经说啦,如此这般!!!
懂了懂了( ̄ ̄)
页:
[1]