递归-汉诺塔

天才程序员用递归

def test(n):

    if n == 1:

        return 1

    else:

        return n*test(n-1)

number = int(input('请输入一个正整数\n'))

result = test(number)

print('%d 的阶乘是 %d' % (number,result))


下面是汉诺塔的实现

def hanoi (n,a,b,c):

    if n == 1:

        print(a,'-->',c)    如果只有最后一个盘子,则直接从a到c

    else:

        hanoi(n-1,a,c,b)    现将前n-1个盘子移动到b

        print(a,'-->',c)如果只有最后一个盘子,则直接从a到c

        hanoi(n-1,b,a,c) 用递归方法将剩下的盘子再移动到C

n=int(input('汉诺塔层数\n'))

hanoi(n,'第一根','第二根','第三根')

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前置文章:递归算法:www.jianshu.com/p/703069f3ba3f . 汉诺塔问题是来源于印度传...
    郎小凯阅读 788评论 0 1
  • 每天跑一个小时,大约是十公里,今天是第十八天,这个十八没有包括下雨不能跑的那几天。 有这事情你以为你做不到,于是就...
    李木只阅读 283评论 2 3
  • 社会学不同于确定的物理科学,观察者对于观察结果具有极大的影响。 就像量子世界揭示了观测者扰动的观测对象
    逾越期Paul阅读 295评论 0 0
  • 巴巴比兔醒来就跑到了离山丘不远的一个小河边,她有些想念清澈的河水。忽然她听到了一些动静,看向河对面,那边的草...
    檀公子阅读 256评论 0 3