#問題
私は鳩の一羽に餌をあげ始めました。一分後に二羽が飛んできて、さらに一分後には三羽が、その後には四羽が飛んで来ました(例:1+2+3+4...)。
一個の餌は鳩一羽が一分間食べ続けられる量です。十分な量の餌がない場合、最初に到着した鳩が先に餌を食べます。鳩は食事の辞め時を知らない貪欲な動物です。もし鳩の餌をN個もっていたら、何羽の鳩に少なくとも一個の小麦の餌を与えられるでしょうか?
#自分なりの回答
<?php
function checkhato($esa){
$hato = 0;
$time = 0;
do{
//経過時間をプラス
$time = $time + 1;
//現在の鳩の数
$hato = $hato + $time;
//鳩が餌を食べました。(足りない可能性あり)
$esa = $esa - $hato;
if($esa < 0){
if($esa*-1 < $time){
$hato = $hato + $esa;
break;
}
$hato = $hato - $time;
break;
}
}while(1);
return $hato;
}
?>
まだまだアルゴリズムの組み立て方が下手で結構時間が掛かってしました。
#まとめ
while文やif文で書いているので正直phpを使う意味があまりないような気もしてしまいます。。。
もっと便利な関数等使って短く美しく書けるのかもしれないと思ってしまいました。