酒瓶换酒问题的代码实现

昨天在家没事看小人书,发现了一个酒瓶换酒的问题,想了想还是挺好玩的,于是这篇文章就诞生了.

问题是:在商店买了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();
?>
 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值