毛のはえたようなもの

インターネット的なものをつらつらとかきつらねる。

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