#問題
フィボナッチ数列の第n項を求めるプログラムを再帰呼出しを用いずに書いて下さい。
ただしnはコマンドライン引数で得るものとします。
※こちらのサイトから引用
#解答
fibonacci_number_not_recurrence.rb
# フィボナッチ数列を格納する配列
# 例に従い初項は0,第2項は1
$fibonacchi_array = [0,1]
# 第n項のフィボナッチ数を求めるメソッド
# term_n:求めたいフィボナッチ数列の項数
# 返り値:第n項のフィボナッチ数
def calc_fibonacchi(term_n)
# 第0項か第1項が指定されたらそのまま返す
if term_n == 0 || term_n == 1
$fibonacchi_array[term_n]
# それ以外だったらterm_1回足し算をする
else
(term_n - 1).times do |n|
# n番目とn+1番目を足し算してn+2番目を求める
$fibonacchi_array.push($fibonacchi_array[n] + $fibonacchi_array[n + 1])
end
#配列の最後の要素を返す
$fibonacchi_array.last
end
end
# 求めたい項数を入力
puts "フィボナッチ数列の第n項を求めます"
print "nをいくつにしますか? : "
n = gets.to_i
# 第n項のフィボナッチ数列の数を求める
fibonacchi_n = calc_fibonacchi(n)
# 答えを表示
puts "フィボナッチ数列の第#{n}項の数は#{fibonacchi_n}です"
#結果
フィボナッチ数列の第n項を求めます
nをいくつにしますか? : 10
フィボナッチ数列の第10項の数は55です