値400万を超えていないフィボナッチ数列の項を考慮することにより、偶数大切項の和を見つけます

okvoyce:

このプロジェクトオイラーの質問といくつかの助けを探して:値400万を超えていないフィボナッチ数列の項を考慮することにより、偶数大切項の和を見つけます。

私はこれを行うには、他の、より簡単な方法があると確信していますが、私はちょうど出始めています!私は、出力にフィボナッチ数列の偶数項の和コードを取得するために管理しているが、私は(私はちょうど範囲1に設定している - テストのための10)を400万に出力制限を設定する方法は考えています。むしろ再び始まるよりも、私が書かれている現在のコードでこれを行うためにとにかくありますか?

def fibonacci(n): 
    if n==0:
        return 0
    elif n==1 or n==2:
        return 1
    elif n>2:
        return (fibonacci(n-1)+fibonacci(n-2))


fib_list=[fibonacci(n) for n in range (1, 10) if fibonacci(n)%2==0]
fib_even=sum(fib_list)
print(fib_list)
print(fib_even)
kederrac:

あなたが使用できる組み込み関数sumfilter

def fib(limit):
    a, b = 0, 1
    while a < limit:
        yield a
        a, b = b, a + b

sum(filter(lambda x: x%2==0, fib(4_000_000)))

出力:

4613732

fib一方、関数は、すべてのフィボナッチ数を生成しますfilter機能がさえないこれらの数字を除外します、そして最後に、sum内蔵の機能はすべての偶数番号を追加します

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=372818&siteId=1