python学习教程(十)--递归之汉诺塔

分析:

A:n个圆盘
B:0个圆盘
C:0个圆盘
目的:将A上的圆盘全部转移到C上,函数原型为Hanoi(n,a,b,c)

  1. 将A上层的n-1个转移B上,语句为:Hanoi(n-1,a,c,b)
  2. 把A最后一个转移到C上, 语句为:print(a+"-->"+c)
  3. 将B上的n-1转移到C上,结束。语句为:Hanoi(n-1,b,a,c)

另外当n=1时,为递归结束的条件,直接将A移动到C即可。
故函数为:

# -*- coding: utf-8 -*-
# 汉诺塔
def hanoi(n, a, b, c):
    if n == 1:
        print(a+'- ->'+c)
    else:
        hanoi(n-1, a, c, b)
        print(a+'- ->'+c)
        hanoi(n-1, b, a, c)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 《裕语言》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 28,405评论 5 19
  • 在你身后 眼光随意流走 一棵开花的树 撞进我的瞳孔 我不要知道名字 才能问问身前的人 你转过头 我就可以偷亲...
    小小七阅读 1,371评论 0 6
  • 2017年10月,发生了2件大事:一个是参加了无戒365极限挑战营,一个是我晋升了萌呆袋的见习盟主。 无戒的训练营...
    林潓甄阅读 1,761评论 5 6
  • 人际关系 你每次到那个时候就会语塞,尴尬,那个时候往往啥也听不进去,不如自己那时候接不上话,去听听别人这么说,什么...
    三不主义阅读 962评论 0 0
  • 年轻真好,不错!正因年轻,我们朝气蓬勃;正因年轻,我们年少轻狂。年轻,并非意味着我们有资本可以肆意挥霍青春;...
    孤影独行阅读 1,690评论 0 1