酒瓶换酒问题的代码实现
程序员文章站
2022-05-31 09:18:13
...
昨天在家没事看小人书,发现了一个酒瓶换酒的问题,想了想还是挺好玩的,于是这篇文章就诞生了.
问题是:在商店买了10瓶酒,每3个空瓶能换一瓶啤酒,问最多能喝多少瓶酒?
<?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();
?>
上一篇: 几个生活好习惯
下一篇: 传智健康项目讲义第七章 五