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)); } }
相关推荐
一块钱能买一瓶啤酒,两个空瓶能换一瓶啤酒,递归实现n块钱能买的啤酒数。 要求: ...(1) 用递归的方法计算能喝到的啤酒数目。 (2) 函数的原型为 int getNumberOfBeer(int n); (3) 不能定义全局变量。
C++计算n元钱可以喝多少瓶啤酒原理及实现
登录并确认您的年龄,您可以浏览用户产生的啤酒厂,在您所在的地区创建新的啤酒厂,还可以发表有关其个人卫生的评论! 我们了解发呆,锁定已使我们渡过难关,我们在这里为您提供帮助。验收标准: 当我尝试访问该...
资源介绍:。 问题:。... 抽Blue Master的人喝啤酒。 德国人抽Prince香烟。 挪威人住蓝色房子隔壁。 抽Blends香烟的人有一个喝水的邻居 。资源作者:。@易语言资源站。资源界面:。资源下载:。
爱因斯坦难题C语言解法 1、 在一条街上,有5座房子,喷了5种颜色。...12、抽Blue Master的人喝啤酒 13、德国人抽Prince香烟 14、挪威人住蓝色房子隔壁 15、抽Blends香烟的人有一个喝水的邻居 问题是:谁养鱼?
抽bluemaster烟的人喝啤酒 13.德国人抽prince烟 14.挪威人住在蓝房子旁边 15.抽混合烟的人的邻居喝矿泉水 问题:谁养鱼? 这道迷题出自1981年柏林的德国逻辑思考学院。 据说世界上只有2%的人能出答案。 ...
使用JAVA语言中的ArrayList解决爱因斯坦在20世纪初出的逻辑推理题——《谁养鱼》,在一条街上有5座房子,喷了5种...抽BlMt的人喝啤酒;德国人抽Prince香烟;挪威人住蓝色房子隔壁;抽Blends香烟的人有一个喝水的邻居。
两种方式破解破解爱因斯坦算法: 问题: 1、在一条街上,有5座房子,...12、抽Blue Master的人喝啤酒 13、德国人抽Prince香烟 14、挪威人住蓝色房子隔壁 15、抽Blends香烟的人有一个喝水的邻居 你们可以猜得出来吗?
12、抽Blue Master的人喝啤酒 13、德国人抽Prince香烟 14、挪威人住蓝色房子隔壁 15、抽Blends香烟的人有一个喝水的邻居 爱因斯坦在20世纪初出的这个谜语。他说世界上有98%的人答不出来。
爱因斯坦的困惑 1.有5栋5种颜色的房子 ...12.抽bluemaster烟的人喝啤酒 13.德国人抽prince烟 14.挪威人住在蓝房子旁边 15.抽blends烟的人的邻居喝矿泉水 问题:谁养鱼? ---------------------
/* * 爱因斯坦出的智力题 * 这道题你能做的出来的你的智商的排名在... * 12、抽Blue Master的人喝啤酒 * 13、德国人抽Prince香烟 * 14、挪威人住蓝色房子隔壁 * 15、抽Blends香烟的人有一个喝水的邻居 */
熊猫精酿想让中国人喝到真正好喝的啤酒
可能的领域 meinbierbeidir.com app.meinbierbeidir.com 应用程序包名称 com.meinbierbeidir.app svg支持 菲格玛 链接到 要求
喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水。编程实现。要求: (1) 用递归的方法计算能喝到的啤酒数目。 (2) 函数的原型为 int getNum(int n); (3) 不能定义全局变量。
一块钱能买一瓶啤酒,两个空瓶能换一瓶啤酒,递归实现n块钱能买的啤酒数。 要求: (1) 用递归的方法计算能喝到的啤酒数目。 (2) 函数的原型为 int getNumberOfBeer(int n); (3) 不能定义全局变量。
喝着啤酒看世界杯练PPT课件.pptx
还有其他缺点:花钱,花时间喝啤酒,而我本来可以做其他事情。 所以我决定尝试一个实验。 一些背景... 首先, ,所以我有办法锻炼。 我也有一个所以我可以跟踪我走了多少步等(我一直戴着它)。 我在和手机应用程序...
感觉喜欢从7/11开始喝啤酒,但不确定现在是否有可能? 在Chrome中打开一个新标签,您马上就会知道。 红色表示啤酒目前不在销售中。 橙色表示销售在15分钟内开始或结束。 绿色表示销售已经开始! 这是一个使用ReactJS...
原来,美国的妇女通常在家照顾孩子,所以她们经常会嘱咐丈夫在下班回家的路上为孩子买尿布,而丈夫在买尿布的同时又会顺手购买自己爱喝的啤酒。这个发现为商家带来了大量的利润,但是如何从浩如烟海却又杂乱无章的...