プロジェクトオイラー2
プロジェクトオイラーの2問目をpythonを使って解いてみました。
問題
フィボナッチ数列の値で4百万を超えない値の、偶数値の総和を求めよ。
下のMに4000000を代入すれば答えが出ます。
M = int(input()) #フィボナッチ数列の値の上限 def fibonacci(n): #フィボナッチ数列の第n番目の項 fib_numbers = [1, 1] if n == 1: return 1 else: while len(fib_numbers) < n + 1: p = len(fib_numbers) - 2 q = len(fib_numbers) - 1 fib = fib_numbers[p] + fib_numbers[q] fib_numbers.append(fib) return fib_numbers[len(fib_numbers) - 1] start = 1 #フィボナッチ数列の1番目の項から始めた sum_of_evenfibonacci = 0 N = 1 while N <= M: #フィボナッチ数列の値がMを超えないもののなかで、偶数値のものだけ和を取った if N % 2 == 0: sum_of_evenfibonacci += N start += 1 N = fibonacci(start) print(sum_of_evenfibonacci)