汉罗塔问题——Python

汉罗塔问题就是一个循环的过程:* (有两种情况)

  • 如果被移动盘只有一个盘子,可以直接移动到目的盘
  • 但是被移动盘有多个盘子,就先需要将上面的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)
原文地址:https://www.cnblogs.com/luojianyi/p/9479493.html