在python3中,这个Fibonacci之和工作正常吗

2024-09-28 05:21:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个任务是做一个程序,将前100个斐波纳契数相加。我用Python和qbasic64检查了我的输出,结果不一样。我也检查了不同的输入。在

Input: 10
Output: 89
-----------
Input: 100
Output: 573147844013817084101

对吗?在

这是我的代码:

^{pr2}$

编辑:再次编辑代码,请立即检查。我刚在维基百科上找到。。这取决于你开始循环的数字。所以如果我用(0,1,1,2,3,5,8,13,21和34)作为前10个斐波纳契数,那么总和将是88,而不是89。在


Tags: 代码程序编辑inputoutput数字总和pr2
3条回答

在循环中,您已经在第3个位置开始迭代,因为您已经设置了。所以把你的范围设为(n-2)。在

0:1个 1比1 2:1分 3:2分 4:3分 5点5分

要获得Fibonacci数的,使用作为序列的第一个,需要执行以下操作:

def run_it(n):
    N2 = 0
    N1 = 0
    N = 0
    z = N
    for i in range(n):
        print(N,z)
        N2 = N1
        N1 = N
        if N is 0: N = 1
        else: N = N1 + N2
        z = z + N

run_it(int(input('Number: ')))

若要使用1作为序列的开始来计算和,请将N的初始值从0更改为1。在

前10个和100个fibonacchi数之和将分别为88和5731478440138817084100:

>>> cache = {}

>>> def fib(n):
        if n == 0: return 0
        if n == 1: return 1
        if not n in cache:
            cache[n] = fib(n - 1) + fib(n - 2)
        return cache[n]

>>> sum([fib(i) for i in range(10)])
88
>>> sum([fib(i) for i in range(100)])
573147844013817084100

相关问题 更多 >

    热门问题