ちょっと思うところがあり、タイトルをphpで書いてみた。
数学をかじっている人や理系の人にとっては当たり前の知識らしい。
実際のページはこちら→再帰関数でフィボナッチ数を取得
こういったものを作るのも、パズルを解くみたいでなかなか面白いです。
ついでにソースも載せておきます。
(ソースを修正しました→こちら)
<?php
$f['1']=1;
$f['2']=1;
$limit=$_GET['i'];
$i=3;
if(!(preg_match('/\\d/',$limit)) or $limit<1){
$result='1以上の整数を入力してください';
}else{
f($i);
}
function f($i){
global $f;
global $limit;
global $result;
//1か2が渡された場合は1を返す
if($limit<3){
$result=$f[$limit];
return;
}
$f[$i]=$f[$i-1]+$f[$i-2];
$i++;
if($i>$limit){
$result=$f[$i-1];
return;
}else{
f($i);
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>再帰関数でフィボナッチ数を取得</title>
<style>
<!--
-->
</style>
<script type="text/javascript"><!--
// --></script>
</head>
<body>
<h1>再帰関数でフィボナッチ数を取得</h1>
<p>何番目のフィボナッチ数を取得しますか?</p>
<form method="get" action="./">
<input type="text" value="" name="i" />
<input type="submit" value="送信" />
</form>
<p style="margin-top:2em"><?=$result?></p>
</body>
</html>