ボトル交換問題のコード実装
2214 ワード
昨日家で用事がなくて小さい人の本を読んで、1つの瓶が酒を交換する問題を発見して、考えてみるとやはりとても面白いと思って、そこでこの文章は誕生しました.
質問:店でお酒を10本買いました.空き瓶3本ごとにビールを1本交換できます.最大何本飲めますか.
精錬すると通解の問題になりますが、もちろん、相変わらず例にすぎません.
bottom.php
質問:店でお酒を10本買いました.空き瓶3本ごとにビールを1本交換できます.最大何本飲めますか.
<?php
/* 10 , 3 , ?*/
$empty = '3'; //
$bottle = '10'; //
$wine = '10'; //
$bottle = intval($bottle/$empty)+$bottle%$empty+$bottle;
$wine += intval($bottle/$empty); // 14
if ($bottle%$empty=='2'){ //
$wine++;
}
echo $wine;
/* */
$empty = '3'; //
$bottle = '10'; //
$wine = '10'; //
while($bottle>=2){ //if $bottle=2 , ,
$bottle-=2; //$bottle-3+1
++$wine;
}
echo $wine;
?>
精錬すると通解の問題になりますが、もちろん、相変わらず例にすぎません.
<form action="bottom.php" method="post">
:<input type=text name=bottom >
:<input type=text name=viv >
<br/><input type=submit value=" ">
<input type=reset value=" ">
</form>
bottom.php
<?php
class bottom
{
public $total; //
public $viv; //$viv
public $sum; //
public $bottom;
function __construct($total,$viv){
$this->total=$total;
$this->viv=$viv;
}
function total()
{
$bottom=$this->total;
$sum=0;
while($this->total>=$this->viv-1)
{
$this->total=($this->total-$this->viv+1);
++$sum;
}
echo ' ';
echo $sum+$bottom.' ';
}
}
@$bottoma=$_POST["bottom"];
@$viva=$_POST["viv"];
$diddo=new bottom($bottoma,$viva);
$diddo->total();
?>