汉罗塔问题就是一个循环的过程:* (有两种情况)
- 如果被移动盘只有一个盘子,可以直接移动到目的盘
- 但是被移动盘有多个盘子,就先需要将上面的n-1个盘子通过目的盘移动到辅助盘,然后将被移动盘最下面一个盘子移动到目的盘,最后将辅助盘上面的n-1个盘子通过被移动盘移动到目的盘
Python代码实现:
1 a = [5,4,3,2,1] 2 b = [] 3 c = [] 4 def move(a,b,c,n): 5 if n==1: #当条件为1 的时候 直接移动 6 c.append(a.pop()) 7 return 8 9 move(a,c,b,n-1) #先移动上面n-1 个盘子 10 c.append(a.pop()) #将最后一个盘子移动到目的盘 11 move(b,a,c,n-1) #将剩余的n-1个盘子移动到目的盘 12 13 move(a,b,c,5) 14 print(a) 15 print(b) 16 print(c)