次のような問題です。 初項0、第二項1、であるフィボナッチ数列の第n項を求める関数 fibonacci() を考えよ。ただし、関数の第一引数は任意の自然数 n であるとする。 初項・第二項を両方1としてもフィボナッチ数列そのものは全く変わりないです。単に1つずつシフトします。 今回はこれを使って、アルゴリズムのパターンを説明したいと思います。 問題文を理解する さて、フィボナッチ数列とはなんでしょうか。確か、高校数学の教科書にも説明があったと思いますが、それが具体的にどのような面白さをもっているのか、という説明は無かったかもしれません。 フィボナッチ数列とは、現在の項の値と、一つ前の項の値を足すと、次の項の値になるような数列です。第10項と第11項を足すと、第12項の値になるわけです。 具体的には、 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144,