搞了半天原来是钻了牛角尖o(╥﹏╥)o
Topic source上面的位置写错了 -_-||
def move(n,a,b,c):
if n == 1:
print(a,'-->',c)
else:
move(n-1,a,c,b)
print(a,'-->',c)
move(n-1,b,a,c)
move(3,'A','B','C')
- 1
上面的位置写错了 -_-||
def move(n,a,b,c):
if n == 1:
print(a,'-->',c)
else:
move(n-1,a,c,b)
print(a,'-->',c)
move(n-1,b,a,c)
move(3,'A','B','C')
不如自挂_东南枝
汉诺塔可以理解为3步
#假设a为存放所有盘子的初始柱,b为中转柱,c为目标柱
1.将初始柱a上的n-1个盘子按照全部移动到b柱(不需要去想怎么把n-1移过去的)
2.将初始柱上最后一个盘子也就是最大的盘子n移动到目标柱c
3.将b柱上的n-1个盘子全部移动到c柱
代码
def move(n,a,b,c):
if n == 1:
print(a,'-->',c)
if n >= 2:
move(n-1,a,b,c)
print(a,'-->',c)
move(n-1,b,a,c)
move(3,'A','B','C')