您的位置:首页 > 编程语言 > Python开发

python 递归实现汉诺塔

2018-01-22 11:00 337 查看
def move(n,a,b,c):
if n == 1:
print(a,'-->',c)
else:
move(n-1,a,c,b)
move(1,a,b,c)
move(n-1,b,a,c)

@params:  n,a上的盘子个数;a,b,c分别为三根柱子

当只有一个盘子时,直接从a-->c;当盘子书不为1时,先将a上边n-1个从a移动到b ,move(n-1,a,c,b)然后将a剩下的1个从a移动到c,
move(1,a,b,c)

最后将b柱子上的所有盘子移动到c

move(n-1,b,a,c)
测试一下:

move(3,'A','B','C')
答案:

A --> C
A --> B
C --> B
A --> C
B --> A
B --> C
A --> C
[Finished in 0.2s]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: