鱼C论坛

 找回密码
 立即注册
查看: 2308|回复: 4

[已解决]python斐波那契数列求和,这样比递归快多了。

[复制链接]
发表于 2019-11-3 23:19:48 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 ForLiberty 于 2019-11-3 23:24 编辑

# -*- coding: UTF-8 -*-
def fbnq(x):
    flist = [1,1,2]
    n = 1
    while n <= x :
        n = len(flist) - 1
        fnum = flist[n]
        fnum  = fnum + flist[n-1]
        flist.append(fnum)
    return flist

inp = input("下面将列出的斐波那契数列并计算总和,你需要多少个数字?请输入:")
m = int(inp)
mylist = fbnq(m)
print(mylist)
mysum = sum(fbnq(m))
print(mysum)

请大家看看,如此妥否?
最佳答案
2019-11-3 23:24:48
下面将列出的斐波那契数列并计算总和,你需要多少个数字?请输入:1
[1, 1, 2, 3]
7
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-11-3 23:24:48 | 显示全部楼层    本楼为最佳答案   
下面将列出的斐波那契数列并计算总和,你需要多少个数字?请输入:1
[1, 1, 2, 3]
7
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-3 23:29:16 | 显示全部楼层
哦,那应如何修改?版主有何高见?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-4 00:08:57 | 显示全部楼层
ForLiberty 发表于 2019-11-3 23:29
哦,那应如何修改?版主有何高见?
def fbnq(x):
    flist = [1, 1]
    if x <= 0:
        return -1
    if x == 1:
        return flist[:1]
    while  x - 2 > 0 :
        flist.append(flist[-2] + flist[-1])
        x -= 1
    return flist
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-4 00:48:03 | 显示全部楼层
果然高见,谢谢版主!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 19:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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