Python でフィボナッチ数列の最初の n 項の和を求める方法は?

フィボナッチ数列の最初の n 項の和は、再帰またはループを使用して計算できます。

再帰的手法を用いる

def fibonacci(n):
    if n <= 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fibonacci(n-1) + fibonacci(n-2)

def fibonacci_sum(n):
    if n <= 0:
        return 0
    else:
        return sum(fibonacci(i) for i in range(1, n+1))

n = int(input("输入斐波那契数列的项数:"))
print("前", n, "项和为:", fibonacci_sum(n))

ループ方式による

def fibonacci_sum(n):
    if n <= 0:
        return 0
    elif n == 1:
        return 1
    else:
        fib_list = [0, 1]
        for i in range(2, n+1):
            fib_list.append(fib_list[i-1] + fib_list[i-2])
        return sum(fib_list)

n = int(input("输入斐波那契数列的项数:"))
print("前", n, "项和为:", fibonacci_sum(n))

どちらの方法でもフィボナッチ数列の前n項の和を求めることができる

bannerAds