`
明子健
  • 浏览: 576537 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

喝啤酒

 
阅读更多
package com.ming.test;

/**
 * Drunkard
 * <p>
 * 钱2=酒1+瓶1+盖1
 * 
 * <p>
 * 酒1+瓶1+盖1=瓶2
 * <p>
 * 酒1+盖1=瓶1
 * 
 * <p>
 * 酒1+瓶1+盖1=盖4
 * <p>
 * 酒1+瓶1=盖3
 * 
 * <p>
 * 瓶1-盖1=盖3-瓶1
 * <p>
 * 瓶1=盖2
 * 
 * <p>
 * 瓶1=酒2
 * <p>
 * 盖1=酒1
 * 
 * <p>
 * 钱2=酒1+瓶1(酒2)+盖1(酒1)=酒4
 * 
 * <p>
 * 钱10=酒20
 * 
 * @author ming
 *
 */
public class Drunkard {
	// 已喝啤酒瓶数
	static int drinkTimes;
	// 剩余可喝啤酒数
	static int beerNum;
	// 剩余空瓶数
	static int bottleNum;
	// 剩余盖子数
	static int coverNum;
	// 兑换啤酒需要的空瓶数
	static int bottleExNum;
	// 兑换啤酒需要的盖子数
	static int coverExNum;
	// 啤酒单价
	static int price;
	// 剩余钱
	static int money;

	/**
	 * 初始化参数
	 */
	static void init() {
		// 已喝啤酒瓶数
		drinkTimes = 0;
		// 剩余可喝啤酒数
		beerNum = 0;
		// 剩余空瓶数(喝到最后总会剩余1个)
		bottleNum = 1;
		// 剩余盖子数(喝到最后总会剩余1个)
		coverNum = 1;
		// 兑换啤酒需要的空瓶数
		bottleExNum = 2;
		// 兑换啤酒需要的盖子数
		coverExNum = 4;
		// 啤酒单价
		price = 2;
		// 剩余钱
		money = 10;
	}

	/**
	 * 买了就喝,喝完接着买
	 */
	static void buyBeer() {
		if (money >= price) {
			money = money - price;
			beerNum++;
			drinkBeer();
			buyBeer();
		}
	}

	/**
	 * 喝完兑换,换完接着喝
	 */
	static void drinkBeer() {
		if (beerNum > 0) {
			beerNum--;
			drinkTimes++;
			bottleNum++;
			coverNum++;
			exchangeBeer();
			drinkBeer();
		}
	}

	/**
	 * 换完就喝,喝完接着换
	 */
	static void exchangeBeer() {
		exchangeBeerByBottle();
		exchangeBeerByCover();
		// exchangeBeerByBottleAndCover();
		drinkBeer();
	}

	/**
	 * 用空瓶换
	 */
	static void exchangeBeerByBottle() {
		if (bottleNum >= bottleExNum) {
			bottleNum = bottleNum - bottleExNum;
			beerNum++;
			exchangeBeerByBottle();
		}
	}

	/**
	 * 用盖子换
	 */
	static void exchangeBeerByCover() {
		if (coverNum >= coverExNum) {
			coverNum = coverNum - coverExNum;
			beerNum++;
			exchangeBeerByCover();
		}
	}

	/**
	 * 用空瓶和盖子组合换
	 */
	static void exchangeBeerByBottleAndCover() {
		if ((coverExNum % 2 == 0) && (bottleExNum % 2 == 0)
				&& (coverNum >= coverExNum / 2 && bottleNum >= bottleExNum / 2)) {
			coverNum = coverNum - coverExNum / 2;
			bottleNum = bottleNum - bottleExNum / 2;
			beerNum++;
			exchangeBeerByBottleAndCover();
		}
	}

	/**
	 * 开始
	 */
	public static void start() {
		init();
		buyBeer();
	}

	public static void main(String[] args) {
		start();
                /*只给赊1瓶*/
		System.out.println("剩余钱: " + money);
		System.out.println("已喝啤酒瓶数: " + drinkTimes);
		System.out.println("剩余可喝啤酒数: " + beerNum);
		/* 前面借了空瓶和盖子各1个 */
		System.out.println("剩余空瓶数: " + (bottleNum - 1));
		System.out.println("剩余盖子数: " + (coverNum - 1));
	}

}

 

分享到:
评论

相关推荐

    C语言 递归实现 一元钱买一瓶啤酒,两个空瓶换一瓶啤酒.问n元钱能喝多少瓶啤酒?。

    一块钱能买一瓶啤酒,两个空瓶能换一瓶啤酒,递归实现n块钱能买的啤酒数。 要求: ...(1) 用递归的方法计算能喝到的啤酒数目。 (2) 函数的原型为 int getNumberOfBeer(int n); (3) 不能定义全局变量。

    C++计算n元钱可以喝多少瓶啤酒原理及实现

    ### C++计算n元钱可以喝多少瓶啤酒原理及实现 #### 问题描述 本问题主要探讨了如何利用C++编程语言来解决一个具体的数学问题:假设每瓶啤酒的价格为2元,用户可以用2个空瓶或者4个瓶盖换取一瓶新的啤酒。基于这些...

    青岛国际啤酒节广告语.doc

    1. **城市与文化融合**:广告语“喝啤酒,吃海鲜,洗海澡,游崂山”展现了青岛独特的海滨文化和美食文化,将啤酒节与青岛的自然风光和地方特色相结合,吸引游客全方位体验。 2. **幽默与创意**:“世上本没有啤酒城...

    shareBeer:喝啤酒少的邻居可以互相帮助的平台

    "shareBeer:喝啤酒少的邻居可以互相帮助的平台"是一个创新的应用程序,旨在通过社区的力量,让啤酒库存不足的用户能够与附近拥有多余啤酒的邻居进行互助分享。这个平台可能是一个在线应用,如meinbierbeidir.com或...

    喝着啤酒看世界杯练PPT课件.pptx

    这份“喝着啤酒看世界杯练PPT课件”是一个专业课件,主要目的是通过结合轻松的场景(如喝啤酒和看世界杯)来教授语言表达和语法知识。课件内容涵盖多个方面,包括词汇、句型、语法以及日常对话练习。 首先,课件...

    大学生啤酒消费行为调查问卷.docx

    接着,通过询问喝啤酒的频率和每次的饮用量,可以分析他们的饮酒习惯和消费量。\n\n问卷还关注了啤酒的购买规格选择,如大瓶、小瓶、易拉罐装等,这反映了大学生对于便携性和分量的考虑。此外,调查大学生通常与多少...

    纯生啤酒品牌概念与包装测试.pptx

    研究方法采用了座谈会的形式,在广州、深圳和东莞各举办两场,总计六场座谈会,参与者为23-40岁的男性,具有高中及以上学历,属于白领阶层,月收入在2500元至4000元以上,且有喝啤酒的习惯,尤其是纯生啤酒。...

    啤酒营销案例.pptx

    在西班牙和法国,Buckler得到了积极的市场响应,采用了“有时候喝啤酒,有时需要喝BUCKLER”和“如此口味使你不会错过酒精”的广告口号,显示出Buckler作为社交饮料和替代品的双重角色。然而,在荷兰、爱尔兰和埃及...

    美国米勒啤酒公司营销案.doc

    米勒公司对“海雷夫”牌啤酒进行了重新定位,将其从“精品啤酒”转变为专为“真正爱喝啤酒的人”设计的产品。通过改变广告策略,如在广告中展示激动人心的场景和邀请著名篮球明星代言,以吸引目标顾客。 3. **广告...

    啤酒音乐广场筹划方案.pdf

    活动主题鲜明,以“吃巴西烤肉、喝啤酒、唱K歌”为主,注重打造无烟、绿色、高层次的啤酒饮食文化。 活动设备齐全,包括高级木质桌椅、无烟烘烤机、啤酒屋、舞台设施、电视、KTV点唱设备和音响系统,确保活动的顺利...

    《啤酒节活动方案》PPT课件.ppt

    4. **互动游戏**:喝啤酒比赛是活动的一大亮点,分为男子组和女子组,每个组有5名参赛者,分别在最短时间内喝完指定数量的啤酒。这种竞赛形式不仅增加了趣味性,还为观众提供了参与和竞争的机会。 5. **奖品设置**...

    首届北京国际啤酒节策划方案.pptx

    在推广策略上,方案提出以简洁易懂的“CRD喝啤酒”作为核心理念,结合赞助企业的冠名,同时设计具有特色的啤酒节LOGO和主视觉,以提升品牌形象。此外,还计划与多家主流媒体合作,如人民网、搜狐网和新浪网等,进行...

    关于啤酒的调查问卷[整理].pdf

    6. **消费频率与饮用量**:问卷涉及一周喝啤酒的次数和选择的酒精度,这些数据能反映消费者的饮酒习惯和健康观念,有助于调整产品线和营销策略。 7. **品牌忠诚度**:问卷询问受访者是否只喝特定品牌的啤酒,以及最...

    美食啤酒节策划方案.doc

    - 喝啤酒大赛:鼓励顾客参与,设立不同奖项,如“超级酒仙”和参与奖,以增加互动性和趣味性。 - 啤酒争霸赛:以速度决定胜负,获胜者可获得现金抵用券。 - “美女相帅哥,酒量大比拼”:女性参赛者与男性组队...

    Deja-Brew:作为喝啤酒的人,我想发现我所在地区的啤酒厂并与其他喝啤酒的人互动

    登录并确认您的年龄,您可以浏览用户产生的啤酒厂,在您所在的地区创建新的啤酒厂,还可以发表有关其个人卫生的评论! 我们了解发呆,锁定已使我们渡过难关,我们在这里为您提供帮助。验收标准: 当我尝试访问该...

    XX啤酒促销游戏方案汇总.doc

    在大型场所设立“龙虎榜”,消费者通过比赛喝啤酒的速度参与,时间最短的前两名分别被列为“龙”和“虎”,可获大奖。这款游戏强调参与性和竞争性,同时可以作为品牌宣传工具,与终端合作提高客户黏性。奖品配置...

    说出来可能不信,现在酒厂都在招算法工程师

    场景描述:虽然夏日已过,但人们喝啤酒的热情还在持续高涨。不过随着大众的追求和理念提升,对于啤酒的要求也越来越高,比如逐渐兴起的精酿之风,都在印证人们在啤酒的口感和风味上,拥有更加「苛刻」的要求。那么...

    AE培训教程之一.pdf

    对于James 来说,啤酒肚是他最大的担忧,因为他不想因为喝啤酒而破坏自己的时尚形象。"Youngish 淡啤酒"正是针对像James 这样的消费者,提供了既能满足口感又不担心身材问题的选择。 三、如何填写创意简报? 填写...

    易语言解决爱因斯坦的难题源码

    资源介绍:。 问题:。... 抽Blue Master的人喝啤酒。 德国人抽Prince香烟。 挪威人住蓝色房子隔壁。 抽Blends香烟的人有一个喝水的邻居 。资源作者:。@易语言资源站。资源界面:。资源下载:。

Global site tag (gtag.js) - Google Analytics