Home > Backend Development > PHP Tutorial > 每瓶啤酒2元,2个空酒瓶或4个瓶盖可换1瓶啤酒。10元最多可喝多少瓶啤酒? php

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

WBOY
Release: 2016-06-20 12:39:52
Original
1564 people have browsed it

//根据题意设定初始变量值//然后 一个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 '<br>';54         echo 'empty_bottle:', $this->empty_bottle;55         echo '<br>';56         echo 'total', $this->total;57         echo '<hr>';58     }59 }60 61 $peer = new Beer(10);62 $rs   = $peer->run();63 print_r($rs);
Copy after login

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

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

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template