以前再帰を使った回文判定、Fractal図形の描画を行いましたが、今回は第2弾です。
#フィボナッチ数列
フィボナッチ数列とは、
1 1 2 3 5 8 13...
のように前2つの数字を足したものが次の項になるという数列です。
(例)第4項の3はその前2つの1と2の和
今回は再帰を使ってフィボナッチ数列の第n項を知るというプログラムを書きました。
def fibonacci(n):
if n < 3:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
もし1項か2項なら1、それ以降は1つ前と2つ前の項に戻り、さらに1つ前、2つ前にもどるという形です。
少し分かりにくいですが、
n=5なら4項、3項の和が必要なので2,1項に戻って和を求めていきます。
これでn=10なら55、n=20なら6765となります(数が大きくなればなるほど時間がかかります)。