关闭

Python 递归函数

25人阅读 评论(0) 收藏 举报

汉诺塔移动

<code class="hljs" python="">def hanoi(n,x,y,z):
    if n==1:
        print(x,'-->',z)
    else:
        hanoi(n-1,x,z,y)#将前n-1个盘子从x移动到y上
        hanoi(1,x,y,z)#将最底下的最后一个盘子从x移动到z上
        hanoi(n-1,y,x,z)#将y上的n-1个盘子移动到z上
n=int(input('请输入汉诺塔的层数:'))
hanoi(n,'x','y','z')
</code>

 count = 1
 2 
 3  def test(num, src, dst, rest):
 4         global count
 5 
 6         if num < 1:
 7                 print False
 8         elif num == 1:
 9                 print "%d:\t%s -> %s" % (count, src, dst)
10                 count += 1
11         elif num > 1:
12                 test(num - 1, src, rest, dst)
13                 test(1, src, dst, rest)
14                 test(num - 1, rest, dst, src)
15 
16 
17 test(3, 'A', 'C', 'B')
复制代码

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:26次
    • 积分:10
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档
    阅读排行
    评论排行