php 两元钱一瓶酒,每瓶啤酒2元,2个空酒瓶或4个瓶盖可换1瓶啤酒。10元最多可喝多少瓶啤酒? php...

//根据题意设定初始变量值//然后 一个while循环去操作//每换得一个瓶子,换的那个减去要做相应的数目//然后喝了啤酒后, 各数量加1//直到不符合要求。跳出循环 1 class Beer{ 2 3 protected $uni_gai = 4; //每4个瓶盖1瓶 4 protected $uni_bottle = 2; //每两个瓶子换1瓶 5 protected $uni_beer = 2; //每瓶2块钱 6 protected $rs = array();//存取结果 7 protected $total = 0; //当前买了啤酒的数量 8 protected $gai = 0; //当前有多少个啤酒 9 protected $empty_bottle = 0; //空瓶子10 11 public function __construct($money){12 $cur = $money / $this->uni_beer;13 $this->total = $cur;14 $this->gai = $cur;15 $this->empty_bottle = $cur;16 }17 18 public function run(){19 while($this->gai > 0 || $this->empty_bottle > 0){20 if($this->gai >= $this->uni_gai){21 $this->deal_num('gai');22 }23 if($this->empty_bottle >= $this->uni_bottle){24 $this->deal_num('empty_bottle');25 }26 27 $this->check_overflow();28 }29 return $this->rs;30 }31 32 public function deal_num($type){33 if($type == 'gai'){34 $this->gai -= $this->uni_gai;35 }else{36 $this->empty_bottle -= $this->uni_bottle;37 }38 $this->gai++;39 $this->empty_bottle++;40 $this->total++;41 }42 public function check_overflow(){43 if($this->gai < $this->uni_gai && $this->empty_bottle < $this->uni_bottle){44 $this->rs['gai'] = $this->gai;45 $this->rs['total'] = $this->total;46 $this->rs['empty_bottle'] = $this->empty_bottle;47 $this->gai = 0;48 $this->empty_bottle = 0;49 }50 }51 public function _print(){52 echo 'gai:', $this->gai;53 echo '

';54 echo 'empty_bottle:', $this->empty_bottle;55 echo '

';56 echo 'total', $this->total;57 echo '';58 }59 }60 61 $peer = new Beer(10);62 $rs = $peer->run();63 print_r($rs);

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

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

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值