はじめに
Pukiwikiで問題が難しかったので、備忘録として投稿します。
問題
フィボナッチ数列の項は前の2つの項の和である. 最初の2項を 1, 2 とすれば, 最初の10項は以下の通りである.
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
数列の項の値が20以下のとき, 値が偶数の項の総和を求めよ.
※実際の問題は400万以下の時
解答
# フィボナッチ数列
def fib(n)
if n <= 2
return n
else
return fib(n - 2) + fib(n -1)
end
end
array = []
20.times do |n|
array << fib(n)
end
even_num = []
array.each do |num|
if num % 2 == 0
even_num << num
end
end
puts even_num.sum
おわりに
冗長に書きすぎている気もしますが、うまく処理が行えました!
もっと良い記述方法を思いつきましたら更新したいと思います。