【フィボナッチ数 】FINAL問題 フィボナッチ数 (paizaランク D 相当) – PHP編【配列メニュー】
配列メニュー > 【フィボナッチ数】FINAL問題 フィボナッチ数 (paizaランク D 相当)
※リンク先へ移動する為には「paiza」へのログインが必要です。
解答例
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php $n = trim(fgets(STDIN)); $array = array(); for($i = 0;$i <= ($n-1);$i++){ if($i == 0){ $test = 0; } if($i == 1){ $test = 1; } if($i >= 2){ $test = $array[$i -1] + $array[$i -2]; } array_push($array,$test); echo $test."\n"; } ?> |
「for」繰り返しをするする時、「i」の数値によって条件を変えていきます。
「i=0」のときフィボナッチ数「0」⇒ 「$array」に格納
「i=1」のときフィボナッチ数「1」⇒ 「$array」に格納
「i=2」のときフィボナッチ数は…$array[$i -1] + $array[$i -2]、つまり、一つ前の「1」、二つ前の「0」を足して「1」。この「1」を「$array」に格納して、各要素を出力しています。
