Python:200以内的斐波那契数列

斐波那契数列,因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34。编写程序打印出200以内的斐波那契数列。

斐波那契数列先观察数列的规律

刚开始数列为1,1 。

倒数第二个数                            最后一个数                        新的数              数列   

1                      +                        1                        =                2                  1,1,2

1                      +                        2                        =                3                  1,1,2,3

2                      +                        3                        =                5                  1,1,2,3,5

3                      +                        5                        =                8                  1 ,1,2,3,5,8

以此类推, 对于这个数列的规律已经很清楚了, 最后一个数加上倒数第二个数得到的数加到数列的最后。对于这个问题如何用编程的思想解决呢?

对于一个数列,我先建立一个列表来存储来存储数据,把数据放在列表里。

list1 = [1,1]

然后设置一个num1让它把list1[-1]和list[-2]值赋值给num 

num = list1[-1]+list1[-2]

为什么要设置num? num为下面while设置初始变量,循环条件,和叠加都有帮助。

然后利用num先判断num小于200,如果小于200,上面由于我先加过一次,所有可以直接加到列表的后面,作为列表的元素,进行最后两个数相加,然后进行循环,当最后两个数大与200时跳出循环然后打印。

while num < 200:
    list1.append(num)
    num=list1[-1]+list1[-2]
print(list1)

结果如下:

 可以遍历列表来

for i in list1:
    print(i,end=' ')

 

 

 最终代码:

list1 = [1,1]
num = list1[-1]+list1[-2]
while num < 200:
    list1.append(num)
    num=list1[-1]+list1[-2]
for i in list1:
    print(i,end=' ')
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
斐波那契数列是指前两个数为1,从第三个数开始,每个数为前面两个数之和。在Python,可以用循环或递归的方式实现。以下是用循环实现斐波那契数列的代码: ```python a, b = 1, 1 for i in range(1, 101): if i == 1 or i == 2: print(1, end=" ") else: c = a + b a = b b = c print(c, end=" ") ``` 输出结果为: ``` 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 102334155 165580141 267914296 433494437 701408733 1134903170 1836311903 2971215073 4807526976 7778742049 12586269025 20365011074 32951280099 53316291173 86267571272 139583862445 225851433717 365435296162 591286729879 956722026041 1548008755920 2504730781961 4052739537881 6557470319842 10610209857723 17167680177565 27777890035288 44945570212853 72723460248141 117669030460994 190392490709135 308061521170129 498454011879264 806515533049393 1304969544928657 2111485077978050 3416454622906707 5527939700884757 8944394323791464 14472334024676221 23416728348467685 37889062373143906 61305790721611591 99194853094755497 160500643816367088 259695496911122585 420196140727489673 679891637638612258 1100087778366101931 1779979416004714189 2880067194370816120 4660046610375530309 7540113804746346429 12200160415121876738 ``` 注意:以上代码输出了前100个斐波那契数,实际上斐波那契数列无限大。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值