Python小练习

来源:互联网 发布:淘宝代销货源平台软件? 编辑:程序博客网 时间:2024/06/03 16:25

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……。这个数列从第3项开始,每一项都等于前两项之和。

下面分享两个方法证明小兔纸的繁殖能力有多强(小兔纸的繁殖周期与斐波那契数列一致):

方法一:迭代实现

def fibonacci(n):    n1 = 1    n2 = 1    n3 = 1    if n < 1:          # 输入错误的情况,返回0        print("输入错啦!")        return 0    while (n-2)>0:        n3 = n2 + n1        n1 = n2        n2 = n3        n -= 1    return n3:num = int(input("请输入月份n:"))result = fibonacci(num)if result:                # 当返回值为非0,result为True    print("总共有 %d 对小兔兔诞生!!!" % result)

方法二:递归实现

def fab(n):    if n < 1:        print("输入有误!")        return 0    if n == 1 or n == 2:        return 1    else:        return fab(n-1) + fab(n-2)num = int(input("请输入月份n:"))result = fab(num)if result:    print("总共有%d对小兔纸!!!" % result)

方法三:利用元组进行交换

def Fib(n):    a,b = 1,1    for i in range(n-1):   # 当n = 0时,不执行for循环中的内容        a, b = b, a+b    return anum = int(input("输入月份:"))print("第 %d 个月有 %d 对兔子" % (num, Fib(num)))


原创粉丝点击