Problem 2
フィボナッチ数列の項は前の2つの項の和である。最初の2項を 1, 2 とすれば、最初の10項は以下の通りである。
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
数列の項が400万を超えない範囲で、偶数の項の総和を求めよ。
Problem 2 - PukiWiki
数列の項の値が400万を越えない偶数項ということらしーです。
- 配列操作(実際にはリスト操作)はできるだけしないように。
- ループは展開して四則演算に。3n-1項目(nは自然数)が偶数なのでそれだけ足します。
とはいえ400万ぐらいの値ならそこまで考えなくてもいいような気も。
limit = 4000000 a = [1,2] sum = 0 while a.last <= 4000000 sum += a.last # a_3n = a[0]+a[1] a_3n1 = a[0] + 2* a[1] a_3n2 = 2* a[0]+ 3* a[1] a =[a_3n1, a_3n2] end p sum
答え:4613732