今回はfortranの配列を利用してフィボナッチ数列を解いていきます。
pythonで言うところの「リスト」にあたるものです。
これを使うことで、わかりやすいコードが書けるのでぜひ試してみましょう。
(ちょいちょいpythonの話を挟みますが、わからない方は飛ばしてもらって結構です。)
配列
使い方
整数・実数を定義するのと同様で、配列も最初に宣言をしておかなくてはいけません。
integer :: a(3)
というような形です。
上のような場合は「成分が整数のaという配列を長さ3で」宣言しました。
pythonで表すと
a = [1,2,3]
というようなリストを表しています。
フィボナッチ数列
では例題として、フィボナッチ数列の20項目を求めてみましょう。

フィボナッチ数 - Wikipedia
最初にコードを示しておくとこのようになります。
program fibv implicit none integer :: vec(22),i vec(1) = 0 vec(2) = 1 do i = 1,20 vec(i+2) = vec(i+1) + vec(i) end do write(*,*) vec(20) stop end program fibv
配列の準備
では解説していきたいと思います。
まず、
integer :: vec(22),i
でvecという名前の配列を長さ22で準備します。
(繰り返し処理させる際に、i=1,20と設定したので、フィボナッチ数列は22項目まで求ままるからです。)
初期値の設定
次に配列vecの一番目の数字と、二番目の数字を設定しておきます。
vec(1) = 0 vec(2) = 1
これで、配列の一番目に0二番目に1が入りました。
繰り返し処理
では、繰り返し処理を行って配列を埋めていきましょう。
do i = 1,20 vec(i+2) = vec(i+1) + vec(i) end do
例えば、i = 1のとき、
vec(3) = vec(2) + vec(1)
となります。
vec(1)=0、vec(2)=1と初期値を設定したので、vec(3)=1はとなります。
すなわち、配列の3番目の数が1と決まりました。
pythonでのイメージとしては
vec = [0,1,1]
となります。
この要領で22項目まで決めていきます。(i = 20のときvec(22) = vec(21) + vec(20)まで決まるので)
20項目を呼び出す
最後に配列の20項目を呼び出します。
write(*,*) vec(20)
すると答えが
4181
と返ってくるので、これが正解になります!!