python汉诺塔

汉诺塔
目标:把n个盘子从开始位置/start(A),通过中间位置/middle(B),移动到目的位置/end(C)
效果图:

   -------->  

 思路:

分三步: 
一、把n-1从start(A)通过 middle(C)移动到 end(B) 效果图:

二、把第n个数从 start(A)移动到 end(C) 效果图:


三、把(n-1)整体从start(B),通过 middle(A),移动到 end(C) 效果图:





代码实现:
 1 def hnt(start,middle,end,number):
 2     '''
 3     :param start:开始位置
 4     :param middle: 过渡位置
 5     :param end: 目的位置
 6     :param number: 盘子数量
 7     :return: None
 8     '''
 9     if number ==1:
10         print("把%s移动到%s"%(number,end))
11         return
12     hnt(start,end,middle,number-1)
13     print("把%s移动到%s"%(number,end))
14     hnt(middle,start,end,number-1)
15 
16 n = int(input("请输入盘子数量").strip())
17 hnt("A","B","C",n)
方法二


执行结果:

 1 请输入盘子的数量:4
 2 把1移动到B
 3 把2移动到C
 4 把1移动到C
 5 把3移动到B
 6 把1移动到A
 7 把2移动到B
 8 把1移动到B
 9 把4移动到C
10 把1移动到C
11 把2移动到A
12 把1移动到A
13 把3移动到C
14 把1移动到B
15 把2移动到C
16 把1移动到C
17 
18 Process finished with exit code 0


原文地址:https://www.cnblogs.com/testlmh/p/8862485.html