Python第二天——递归函数汉诺塔

!第一次缩进格式错误,当使用tab格式缩进时,确保全部代码都是用tab格式缩进,否则报错。!

!函数用法:只理解递归两层之间的交接,以及递归终结的条件!

一个环:
Step1.将最大的环从A移动到C
A -> C

两个环:
Step1.把除了最大的环之外的环,从A移动到B
A -> B
Step2.将最大的环从A移动到C
A -> C
Step3.把除了最大的环之外的环,从B移动到C
B -> C

三个环:
Step1.把除了最大的环之外的环,从A移动到B
A -> C
A -> B
C -> B
Step2.将最大的环从A移动到C
A -> C
Step3.把除了最大的环之外的环,从B移动到C
B -> A
B -> C
A -> C



作者:魏闪
链接:https://www.zhihu.com/question/24385418/answer/107705695
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
# -*- coding: utf-8 -*-
def move(n, a, b, c):
    if n == 1:
        print(a, '-->', c)#大象  N层操作
    
    else:
        move(n-1,a,c,b)  
        move(1,a,b,c)
        move(n-1,b,a,c)
     #冰箱门   N-1层操作
    
    
move(4, 'A', 'B', 'C')

 

 
posted @ 2018-06-01 13:45  33-林俊凯  阅读(71)  评论(0)    收藏  举报