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:
あなたが使用できる組み込み関数sum
とfilter
:
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
内蔵の機能はすべての偶数番号を追加します