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')

浙公网安备 33010602011771号