求助——如何计算实现的步数,下面程序为什么报错
Topic source这样可以了,但是上面不行的原因还是不明白
l = []
def calc():
l.append(1)
def move(n, a, b, c):
if n == 1:
print(a,'-->',c)
calc()
else:
move(n-1,a,c,b)
move(1,a,c,b)
move(n-1,b,a,c)
n = int(input('请输入汉诺塔成层数: '))
move(n, 'A', 'B', 'C')
print('汉诺塔完成步数:',sum(l))
l = [] def calc(): l.append(1)
def move(n, a, b, c): if n == 1: print(a,'-->',c) calc() else: move(n-1,a,c,b) move(1,a,b,c) move(n-1,b,a,c)
n = int(input('请输入汉诺塔成层数: ')) move(n, 'A', 'B', 'C') print('汉诺塔完成步数:',sum(l))
继续改进下:
l = []
def calc():
l.append(1)
def move(n, a, b, c):
if n == 1:
calc()
print(len(l),':',a,'-->',c)
else:
move(n-1,a,c,b)
move(1,a,b,c)
move(n-1,b,a,c)
n = int(input('请输入汉诺塔成层数: '))
move(n, 'A', 'B', 'C')
- 1
可可豆公子
num = 0 def calc(): num = num + 1
def move(n, a, b, c): if n == 1: print(a,'-->',c) calc() else: move(n-1,a,c,b) move(1,a,c,b) move(n-1,b,a,c)
n = int(input('请输入汉诺塔成层数:\n')) move(n, 'A', 'B', 'C')