フィボナッチ数列とは
- 1つ目と2つ目の要素の値は決められている
[0,1] - 3つ目の要素の値は
1つ前の要素である1と2つ前の要素である0を足した1となる
[0,1]→[1] - 4つ目の要素の値は
一つ前の要素である1と2つ前の要素である1を足した2となる
[0,1,1]→[2] - 5つ目の要素の値は
一つ前の要素である2と2つ前の要素である1を足した3となる
[0,1,1,2]→[3]
自身で考えたコード
#nは0から数えて何番目の要素か
def fibonacci(n)
if n == 0
return 0
elsif n == 1
return 1
else
return fibonacci(n-1)+fibonacci(n-2)
end
end
# fibonacci(n-1)は入力されたn(n番目の要素の一つ目前の要素)を表す
# fibonacci(n-2)は入力されたn(n番目の要素の一つ目前の要素)を表す
# 例えばnが3だった場合、fibonacci(2)+fibonacci(1)
# returnで再度fibonacciメソッドを上から実行する
# つまりnが3だった場合はfibonacci(2)とfibonacci(1)をそれぞれもう一度実行する
# fibonacci(2)+fibonacci(1)でfibonacci(3)を実行するのは誤り
コードの流れ nが3だった場合
fibonacci(3)→
elseに当てはまるので return fibonacci(n-1)+fibonacci(n-2)
→fibonacci(1)とfibonacci(2)の実行
→fibonacci(1)→if n == 1の条件に当てはまる→return 1
→fibonacci(2)→
elseに当てはまるので return fibonacci(n-1)+fibonacci(n-2)
→fibonacci(1)
→return 1
出力結果
nが3だった場合 2
fibonacci(1)とfibonacci(2)の結果である return 1 と return 1 を足した 2 となる