Fibonacci sequence(斐波那契数列)之兔子繁殖问题

斐波那契数列

  • 问题描述
    已知有一对兔子,从第一个月起,到第三个月会生一对小兔子,而小兔子再过三个月之后又会生一对小兔子……以此类推
    下面是推到过程:
    第一个月: 1 对小兔子
    第二个月: 1 对小兔子
    第三个月: 1 对大兔子 1 对小兔子(本月生)
    第四个月: 1 对大兔子 1 对小兔子(本月生) 1对小兔子(上月生)
    第五个月: 2 对大兔子 2 对小兔子(本月生) 1对小兔子(上月生)
    第六个月: 3 对大兔子 3 对小兔子(本月生) 2对小兔子(上月生)
    第七个月: 5 对大兔子 5 对小兔子(本月生) 3对小兔子(上月生)
    ………………
    以此类推
    所以最后推出的结果就是f(n-2)+f(n-1)

下面是代码实现:

斐波那契数列的实现

@Author: xiaozhi
@date: 2019-08-11

n1 = 1
n2 = 1

num = input("输入计算的斐波那契数列的个数:")

if num.isdigit():  # 区分符号位
    num = int(num)  # 字符串转为int整型
    if num ==0:
        print("输入内容非法")
        pass
    if num ==1:
        print(n2)
    if num ==2:
        print(n2,n2)
    if num >= 3:
        for i in range(1,num + 1):
            if i == 1:
                print(1, end=",")
            elif i == 2:
                print(1, end=",")
            else:
                # result = n1 + n2  # 计算当前月份的兔子数
                # print(result, end=",")
                # # 然后交换数据
                # n1 = n2
                # n2 = result
                n1,n2 = n2,n1+n2 # python里灵活的语法结构
                print(n2,end=",")
            pass
        pass
    pass
else:
    print("输入内容非法")

下面是运行结果

输入计算的斐波那契数列的个数:10
1,1,2,3,5,8,13,21,34,55,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值