//根据题意设定初始变量值
//然后 一个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. 4、jvm内存回收——器

    内存回收---->垃圾回收---->GC GC 三基础,一个综合G1 串行:单线程,回收暂停其他 并行:多线程,回收暂停其他 并发:多线程,回收不暂停?! 成功好说,失败Serial Ol ...

  2. 针对不同浏览器,CSS如何写

    我们在开发DIV+CSS页面时候常常会遇到开发出的网页的一些地方在各大浏览器比如微软IE6.微软IE7.微软IE8.火狐浏览器.谷歌浏览器有一些不同,如宽度.高度等地方有相差误.IE6比较老的版本浏览 ...

  3. Python笔记-built-in函数,文件操作,lambda函数

    Built-In: i = abs(123) print(i) j = abs(-123) print(j)#123#123 #all,需要传一个可迭代的东西,里面所有的值是真,返回真 r1 = al ...

  4. ajax里面success函数return上层接收不到

    开发一个小功能,在success fail里直接return,没有收到返回值.排查,查了下往上的博客,参考了以下三个: http://blog.csdn.net/fairyhawk/article/d ...

  5. 跨域资源共享(CORS)问题解决方案

    CORS:Cross-Origin Resource Sharing(跨域资源共享) CORS被浏览器支持的版本情况如下:Chrome 3+.IE 8+.Firefox 3.5+.Opera 12+. ...

  6. 007-Scala类的属性和对象私有字段实战详解

    007-Scala类的属性和对象私有字段实战详解 Scala类的使用实战 变量里的类必须赋初值 def函数时如果没参数可不带括号 2.不需要加Public声明 getter与setter实战 gett ...

  7. hibernate的一种报错

    Exception in thread "main" java.lang.NoClassDefFoundError: javax/tools/StandardJavaFileMan ...

  8. 使用CSS3动画属性实现360°无限循环旋转【代码片段】

    使用CSS3的animation动画属性实现360°无限循环旋转. 代码片段: <div id="test"> <img src="/CSS3/img/ ...

  9. ORACLE各种小指令

    清空表中所有记录truncate table et_xxxxxx 删除一条数据 DELETE FROM zhubajie_member.mb_web_login WHERE nickname='m_3 ...

  10. LeetCode 7 -- String to Integer (atoi)

    Implement atoi to convert a string to an integer. 转换很简单,唯一的难点在于需要开率各种输入情况,例如空字符串,含有空格,字母等等. 另外需在写的时候 ...