Maison > développement back-end > tutoriel php > 每瓶啤酒2元,2个空酒瓶或4个瓶盖可换1瓶啤酒。10元最多可喝多少瓶啤酒? php

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

WBOY
Libérer: 2016-06-20 12:39:52
original
1545 Les gens l'ont consulté

//根据题意设定初始变量值//然后 一个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);
Copier après la connexion

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

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

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal