鱼C论坛

 找回密码
 立即注册
查看: 1406|回复: 0

[技术交流] 零基础学习Python——递归

[复制链接]
发表于 2017-7-29 20:44:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1.        斐波那契数列的实现
        1.1        迭代实现
                def Rabbit(n):
                        n1 = 1
                        n2 = 1
                        n3 = 1

                        if n < 1:
                                print('输入有误')
                                return -1
                        while (n-2) > 0:
                                n3 = n2 + n1
                                n1 = n2
                                n2 = n3
                                n -= 1

                        return n3
                result = Rabbit(20)
                if result != -1:
                        print('总共有%d对小兔子诞生!'% result)
        1.2        递归实现
                def Rabbit(n):
                        if n < 1:
                                print('输入有误!')
                                return -1
                        if n == 1 or n == 2:
                                return 1
                        else:
                                return Rabbit(n-1) + Rabbit(n-2)

                result = Rabbit(20)
                if result != -1:
                        print('总共有%d对小兔子诞生!'% result)
2        汉诺塔,递归方式解决玩法
                #汉诺塔的实现——递归
                def hanoi(n,A,B,C):
                        if n == 1:
                                print(A,'----->',C)
                        else:
                                hanoi(n-1,A,C,B)#将前n-1个盘子从A移动到B上
                                print(A,'----->',C)#将最底下的最后一个盘子从X移动到C上
                                hanoi(n-1,B,A,C)#将B上的n-1个盘子移动到C上

                n = int(input('请输入汉诺塔的层数:'))
                hanoi(n,'A','B','C')

评分

参与人数 1鱼币 +2 收起 理由
小甲鱼 + 2 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 13:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表