私はこの問題に引っかかっていプロジェクトオイラー#2
背景:
フィボナッチ数列の各新しい用語が前の二つの用語を追加することによって生成されます。 1及び2から出発して、最初の10の用語は次のようになります
1、2、3、5、8、13、21、34、55、89、...
の観点を考慮してその値が400万を超えないフィボナッチ配列は、偶数の項の和を求める。
問題がフィボナッチ数ジェネレータ、偶数を取得するコード、または数字を無駄に追加する方法であったかどうかを調べようとしました。
コードは、私がリストに数値を格納することを決めました。ここで、私はそれらを作成します。
list_of_numbers = [] #Holds all the fibs
even_fibs = [] #Holds only even fibs
次に、発電機を作成しました。これは、潜在的な問題領域です。
x,y = 0,1 #sets x to 0, y to 1
while x+y <= 4000000: #Gets numbers till 4 million
list_of_numbers.append(y)
x, y = y, x+y #updates the fib sequence
その後、私は数が偶数であるかどうかを確認し、その後even_fibs
リストに追加するにはいくつかのコードを作成しました。これはコード内に別の弱点です。
coord = 0
for number in range(len(list_of_numbers)):
test_number = list_of_numbers [coord]
if (test_number % 2) == 0:
even_fibs.append(test_number)
coord+=1
最後に、情報を表示します。
print "Normal: ", list_of_numbers #outputs full sequence
print "\nEven Numbers: ", even_fibs #outputs even numbers
print "\nSum of Even Numbers: ", sum(even_fibs) #outputs the sum of even numbers
質問
私は、これは恐ろしい質問をするための方法、が、何が間違っているであることを知っていますか?私に答えを与えてはいけません - 問題のある箇所を指摘してください。
'number of range(len(list_of_numbers)):test_number = list_of_numbers [coord]'は 'for list_of_numbers'の' test_number'に変換できます。その後、あなたは 'coord'を取り除くことができます。 –
+1 "私に答えを与えてはいけません - 問題のあるセクションを指摘してください。" –