两种生成斐波那契数的方法

要学会生成斐波那契数,首先要知道斐波那契以及斐波那契数是什么

斐波那契是中世纪最伟大的数学家,他发现的斐波那契数又称黄金分割数列,这一串数列是从第三个数开始,每个数都是前两个数的和。

斐波那契数:1,1,2,3,5,8,13,21,34,55,89,144,233,377……

下面是生成斐波那契数的两种方法:

第一种:

import turtle
import random
from math import *
def st(n):
    if n <= 0:
        return 0
    elif n == 1:
        return 1
    else:
        return st(n-1)+st(n-2)

第一行的n是斐波那契数的项数,如果n小于等于0,那么数就是0,所以就没有这个数(斐波那契数从1开始),又如果n是1,那么就要放一个1,除去这两种情况,还有的可能就是大于1,那么n-1就是前一位,n-2就是前两位,这行代码也就是“从第三个数起,每个数都是前两个数的和”的意思

此处只是生成了斐波那契数

def s(n):
    result_list = []
    for i in range(1,n+3):
        result_list.append(st(i))
    return result_list
yu=s(12)
print(yu)

此处才是生成并存入列表

将其打印出就完成了

结果图:

第二种方法:

def fb(n):
    a,b=1,1
    print(a)
    for i in range(n):
        a,b=b,a+b
        print(a)
fb(30)

第二种方法不仅代码少,而且生成得快,数字还多

短短7行代码,最重要的部分就是a,b=b,a+b,假如a是1,那么a=b=1,然后这个b又放在前面,使a+b(也就是2)等于了2,也就是b,打印出a(也就是1),再次循环使a+b=3,然后b就成了3,a以相同的方法变为2,然后继续2,3——3,5——5,8——8,13……

然后不断打印a得出斐波那契数列

结果图:

 这两种生成斐波那契数的方法希望能给你们帮助,谢谢

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值