每瓶啤酒2元,2个空酒瓶或4个瓶盖可换1瓶啤酒。10元最多可喝多少瓶啤酒? php
//根据题意设定初始变量值
//然后 一个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的更多相关文章
- 8月30号周五香港接单ING~~化妆品只加10元!!!!!!
8月30号周五香港接单ING~~化妆品只加10元!!!!!! 8月30号周五香港接单ING~~化妆品只加10元!!!!!!
- javascript计算啤酒2元一瓶,4个盖换一瓶,2个瓶换一瓶,10元钱最多喝多少瓶
var n = 0//当前剩下多少瓶加上喝赢了多少瓶 var x = 5//初始多少瓶 var y = 0//除了喝掉的,剩下多少瓶 var z = 0;//总数 var arr = []//定义一个 ...
- 10元买啤酒问题Java解法
10元去买啤酒,2元一瓶.每两个瓶可以换一瓶啤酒,每四个瓶盖可以换一瓶啤酒.最多买几瓶? public class Java { public static void main(String[] ar ...
- 用java代码解决10元喝多少瓶汽水的问题
问题:汽水2元一瓶,四个盖子换一瓶,两个空瓶一瓶,问10元可以喝几瓶?(不许借别人空瓶或瓶盖,但可以先喝汽水再付空酒瓶或瓶盖) 最近同事让笔者看了一道脑筋急转弯的数学题,当然不是很难,只要会加减法应该 ...
- 滴滴过节送10元打车券是不是bug
自从滴滴跟快的去年合作以后,也不玩烧钱大战了,也没法打到免费的车了,乘客打车优惠也少了. 但是现在的滴滴在过节的时候还是会返滴滴代金券,而且金额都比较大,超出了打车的起步价.半年前这边的司机会经常利用 ...
- 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, ...
- [个人开发人员赚钱九]做一个日收入10元的APP!
[导语]尽管讲了非常多个人开发人员的文章.但新手开发人员怎样赚自己的第一个10块钱.确是最难的事情.群里有人说都不知道干什么app赚钱.全然没有想法.而且常常问我有什么高速赚钱的方法.我仅仅能遗憾地 ...
- C#中如何用最少的(20元,10元,5元,1元)付款
- 神州行省内流量套餐6元500M申请,发送BLSN6到10086即可
神州行流量套餐,神州行省内流量套餐6元500M申请,发送BLSN6到10086即可申请开通专属流量包,比全国5元30M划算多了4G全国流量套餐 5元/30M 10元/100M 20元/300M 30元 ...
随机推荐
- git检出与创建的过程
Command line instructions Git global setup git config --global user.name "bingo" git confi ...
- PHP初步(中)
一.文件载入 文件载入:将目标文件的代码载入到当前的位置上,有时候也叫流程控制. 文件载入的目的是实现网站的分层设计,因为不同的页面可能有很多相同的区域(相同的代码),这些相同的代码只需要写一次,有需 ...
- Asp.net MVC 数据注解与验证
数据注解特性定义在名称空间System.ComponentModel.DataAnnotations中(有些特性定义在其他名称空间中),它们提供了服务器端验证的功能,当在模型的属性上使用这些特性时,框 ...
- iOS 8 以后 MKMapView 代理不执行问题
因为ios8上,如果你使用了mapView,必须设置mapView的大小,必须把它添加显示在视图上. 可以将frame设为(0,0,0.1,0.1)
- 例子:Database - Linq to sql
DataContext类型(数据上下文)是System.Data.Linq命名空间下的重要类型,用于把查询句法翻译成SQL语句,以及把数据从数据库返回给调用方和把实体的修改写入数据库. DataCon ...
- python模块httplib的使用
GET: #lianxi-httplib.HTTPConnection.request-get.py import httplib class HttpRequestGETTest(object): ...
- 【EXCEL】冻结窗口的设置
在excel使用时,表格内容很多时,为查看方便,需要冻结一部分内容,冻结窗口分为以下几种情况,分别进行解析. 工具/原料 excel 冻结首行 1 打开需要的表格,点击“视图”----冻结窗格,点击“ ...
- SharePoint 2013 CSOM 对象模型属性包
博客地址:http://blog.csdn.net/FoxDave 虽说是翻译,但是并没什么翻译的,主要内容就是说有一些能通过Server API配置的Site/Web属性在CSOM中找不到,其 ...
- 错误:媒体集有 2 个媒体簇,但只提供了 1 个 sql2005 备份错误。
错误:媒体集有 2 个媒体簇,但只提供了 1 个 sql2005 2010-10-19 11:44:06| 分类: sql|举报|字号 订阅 ql2005备份的时候,选择备份路径是一方面,但 ...
- ubuntu下code::blocks+opengl的使用与配置
操作系统:Ubuntu 15.04 gcc version 4.9.2 opengl安装 sudo apt-get install build-essential libgl1-mesa-dev li ...