//根据题意设定初始变量值
//然后 一个while循环去操作
//每换得一个瓶子,换的那个减去要做相应的数目
//然后喝了啤酒后, 各数量加1
//直到不符合要求。跳出循环
1 class Beer{ protected $uni_gai = 4; //每4个瓶盖1瓶
protected $uni_bottle = 2; //每两个瓶子换1瓶
protected $uni_beer = 2; //每瓶2块钱
protected $rs = array();//存取结果
protected $total = 0; //当前买了啤酒的数量
protected $gai = 0; //当前有多少个啤酒
protected $empty_bottle = 0; //空瓶子 public function __construct($money){
$cur = $money / $this->uni_beer;
$this->total = $cur;
$this->gai = $cur;
$this->empty_bottle = $cur;
} public function run(){
while($this->gai > 0 || $this->empty_bottle > 0){
if($this->gai >= $this->uni_gai){
$this->deal_num('gai');
}
if($this->empty_bottle >= $this->uni_bottle){
$this->deal_num('empty_bottle');
} $this->check_overflow();
}
return $this->rs;
} public function deal_num($type){
if($type == 'gai'){
$this->gai -= $this->uni_gai;
}else{
$this->empty_bottle -= $this->uni_bottle;
}
$this->gai++;
$this->empty_bottle++;
$this->total++;
}
public function check_overflow(){
if($this->gai < $this->uni_gai && $this->empty_bottle < $this->uni_bottle){
$this->rs['gai'] = $this->gai;
$this->rs['total'] = $this->total;
$this->rs['empty_bottle'] = $this->empty_bottle;
$this->gai = 0;
$this->empty_bottle = 0;
}
}
public function _print(){
echo 'gai:', $this->gai;
echo '<br>';
echo 'empty_bottle:', $this->empty_bottle;
echo '<br>';
echo 'total', $this->total;
echo '<hr>';
}
} $peer = new Beer(10);
$rs = $peer->run();
print_r($rs);

打印的结果是: Array ( [gai] => 3 [empty_bottle] => 1 [total] => 15 )

盖子 3个, 空瓶子 1个, 总共喝了15瓶啤酒

每瓶啤酒2元,2个空酒瓶或4个瓶盖可换1瓶啤酒。10元最多可喝多少瓶啤酒? php的更多相关文章

  1. 8月30号周五香港接单ING~~化妆品只加10元!!!!!!

    8月30号周五香港接单ING~~化妆品只加10元!!!!!! 8月30号周五香港接单ING~~化妆品只加10元!!!!!!

  2. javascript计算啤酒2元一瓶,4个盖换一瓶,2个瓶换一瓶,10元钱最多喝多少瓶

    var n = 0//当前剩下多少瓶加上喝赢了多少瓶 var x = 5//初始多少瓶 var y = 0//除了喝掉的,剩下多少瓶 var z = 0;//总数 var arr = []//定义一个 ...

  3. 10元买啤酒问题Java解法

    10元去买啤酒,2元一瓶.每两个瓶可以换一瓶啤酒,每四个瓶盖可以换一瓶啤酒.最多买几瓶? public class Java { public static void main(String[] ar ...

  4. 用java代码解决10元喝多少瓶汽水的问题

    问题:汽水2元一瓶,四个盖子换一瓶,两个空瓶一瓶,问10元可以喝几瓶?(不许借别人空瓶或瓶盖,但可以先喝汽水再付空酒瓶或瓶盖) 最近同事让笔者看了一道脑筋急转弯的数学题,当然不是很难,只要会加减法应该 ...

  5. 滴滴过节送10元打车券是不是bug

    自从滴滴跟快的去年合作以后,也不玩烧钱大战了,也没法打到免费的车了,乘客打车优惠也少了. 但是现在的滴滴在过节的时候还是会返滴滴代金券,而且金额都比较大,超出了打车的起步价.半年前这边的司机会经常利用 ...

  6. c语言实践 用1角 2角 5角 凑成10元钱的方法

    /* 用1角,2角,5角凑出10元钱,有几种办法. 也就是0.1a+0.2b+0.3c=10,化简一下就是 a=100-2b-3c 因为a的范围是0到100,所以弄一个循环 把a的值从0尝试到100, ...

  7. [个人开发人员赚钱九]做一个日收入10元的APP!

    [导语]尽管讲了非常多个人开发人员的文章.但新手开发人员怎样赚自己的第一个10块钱.确是最难的事情.群里有人说都不知道干什么app赚钱.全然没有想法.而且常常问我有什么高速赚钱的方法.我仅仅能遗憾地 ...

  8. C#中如何用最少的(20元,10元,5元,1元)付款

  9. 神州行省内流量套餐6元500M申请,发送BLSN6到10086即可

    神州行流量套餐,神州行省内流量套餐6元500M申请,发送BLSN6到10086即可申请开通专属流量包,比全国5元30M划算多了4G全国流量套餐 5元/30M 10元/100M 20元/300M 30元 ...

随机推荐

  1. HDU 1222

    题意: 一头狼和一头兔子在一座山中,给你一个数n表示洞的个数,编号从0~n-1.兔子可以随意躲在其中一个洞中,狼每次都从编号为0的洞出发,接下来走到第m个洞中,问兔子能不能活下来,即不被狼吃掉.例如: ...

  2. christian louboutin ballerinas outlet

    www.heelschuhe.de, Wie auch immer, Schneiden auf den Punkt; David und Connie in Vancouver: Wir hoffe ...

  3. Javascript常用对象的属性和方法

    javascript为我们提供了一些非常有用的常用内部对象和方法.用户不需要用脚本来实现这些功能.这正是基于对象编程的真正目的. 在javascript提供了string(字符串).math(数值计算 ...

  4. php __invoke 和 __autoload

    当在对象后面添加()时候调用 __invoke <?php class Person { private $name; private $age; public function __const ...

  5. Javascript DOM编程艺术 语法部分

    1.变量,可以变化的东西我们称为变量,随着年龄的增大,我们的age不断变大 2.Javascript变量声明用var,可以不声明变量类型.尽量声明为一个字符串字面量. 3.弱类型:要求程序员必须明确的 ...

  6. html5/css学习笔记

    请始终将正斜杠添加到子文件夹.假如这样书写链接:href="http://www.w3cschool.cc/html",就会向服务器产生两次 HTTP 请求.这是因为服务器会添加正 ...

  7. 线程的Abort方法有感

    今天看CSDN上一个很老的帖子,有个人说Thread.Abort()方法调用之后一定会抛出异常,我对这个有点疑问. 于是自己做了一个测试demo,来研究Abort抛出异常的时机.废话少说,直接上代码: ...

  8. 安装Eclipse环境变量的配置,

    window7系统下的 步骤:    第一步:先安装JDK(记住你安装的位置)我安装在D:\Program Files\Java           目录下. 第二步:JDK安装好后,配置环境变量(重 ...

  9. ubuntu 下更新PHP版本 ZT

    sudo add-apt-repository ppa:ondrej/php5 如果报错 add-apt-repository: command not found add-apt-repositor ...

  10. 【Python】实现简单循环

    # -*- coding:utf-8 -*- #猜数字游戏 lucky_num = 6 count = 0 while count < 3: input_num = int(raw_input( ...