def move(n, a, b, c):
定义一个函数(包含4个变量,盘子数n,和三个柱子a,b,c)
if n==1:
print a,'-->',c 当只有1个盘子时,直接从柱子a移动到柱子c
return
else:
move(n-1,a,c,b) 把柱子a上的n-1个盘子通过柱子c移动到柱子b上
else:
move(n-1,a,c,b) 把柱子a上的n-1个盘子通过柱子c移动到柱子b上
move(1,a,b,c) 把柱子a上最后1个盘子移到柱子c上
move(n-1,b,a,c) 把柱子b上的n-1个盘子通过柱子a移动到柱子c上
print move(4, 'A', 'B', 'C')
move(n-1,b,a,c) 把柱子b上的n-1个盘子通过柱子a移动到柱子c上
print move(4, 'A', 'B', 'C')
黄色部分:递归算法的函数定义
紫色部分:函数调用
def move(n, a, b, c):
if n==1:
print a,'-->',c
return
else:
move(n-1,a,c,b)
move(1,a,b,c)
move(n-1,b,a,c)
print move(4, 'A', 'B', 'C')