首页 > 编程语言 >Java啤酒问题

Java啤酒问题

时间:2022-12-18 17:23:49浏览次数:40  
标签:lastCoverNumber Java int money lastBottleNumber 问题 static totalNumber 啤酒

啤酒问题:

12块钱买啤酒,2块钱一瓶

两个空瓶换一瓶酒

四个瓶盖换一瓶酒

 

最后能买多少啤酒?

 

问题:统一换算成钱,再买酒,递归实现

package cn.edu.lcudcc;

public class BeerQuestion {

    // 定义一个静态的成员变量用于存储可以买的酒数量
    public static int totalNumber; // 总数量
    public static int lastBottleNumber; // 记录每次剩余的瓶子个数
    public static int lastCoverNumber; // 记录每次剩余的盖子个数

    public static void main(String[] args) {
        int money = 12;
        buy(money);
        System.out.println("totalNumber = " + totalNumber);
        System.out.println("lastBottleNumber = " + lastBottleNumber);
        System.out.println("lastCoverNumber = " + lastCoverNumber);
    }

    /**
     * 拿钱买酒
     * @param money
     */
    private static void buy(int money) {
        int buyNumber = money / 2;
        totalNumber += buyNumber;

        int coverNumber = lastCoverNumber + buyNumber;
        int bottleNumber = lastBottleNumber + buyNumber;

        int allMoney = 0;
        if(coverNumber >= 4) {
            allMoney += (coverNumber / 4) * 2;
        }
        lastCoverNumber = coverNumber % 4;

        if (bottleNumber >= 2){
            allMoney += (bottleNumber / 2) * 2;
        }
        lastBottleNumber = bottleNumber % 2;

        if(allMoney >= 2) {
            buy(allMoney);
        }
    }
}

 

输出结果:

totalNumber = 19
lastBottleNumber = 1
lastCoverNumber = 3

  

 

  

标签:lastCoverNumber,Java,int,money,lastBottleNumber,问题,static,totalNumber,啤酒
From: https://www.cnblogs.com/zhzhang/p/16990598.html

相关文章

  • 二进制文件转Hex和Wav文件转Hex的Java代码
    二进制文件转Hex对于需要将二进制数据写入固件的场景(例如mp3文件),需要将二进制文件表示为byte数组importjava.io.File;importjava.io.FileInputStream;importjav......
  • 27_Java中的方法引用
    Java中的方法引用​ 方法引用是在Lambda的基础进行的,本质是将Lambda中的参数列表传递给我们使用了的方法引用中的方法。(这样在使用一些本就存在的方法完成函数式编......
  • kali时间不对,原来是ntp服务出问题
    笔记本安装kali,一段时间没用。今天启动,发现时间不对,并且由于时间不对,很多安全性要求高的网页就不让打开。网上查了之后,说是ntp服务出了问题。https://blog.csdn.net/qq_4......
  • Java核心实操:内存溢出 实战、内存泄漏实战
    文章很长,而且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面......
  • python load数据时出现各种问题
    data_raw=np.load(data_path,allow_pickle=True).item() 1..  2.pickle.load的时候出现EOFError:Ranoutofinput解决方法:删掉该条数据即可。......
  • JAVA流程控制
    JAVA流程控制Scanner对象java.util.Scanner是JDK5新特征,我们可以通过Scanner类来获取用户的输入next():一定要读取到有效字符后才可以结束输入对输入有效字符之......
  • javaScript随机图片
    <scripttype="text/javascript">//<!CDATA[varpic=[];pic[0]="链接";pic[1]="链接";pic[2]="链接";pic[3]="链接";varr......
  • 惠普CP1025 因转印离合器导致打印不全大片空白的问题
    问题症状自检只打印出一部分,后面大部分都是空白.如果是碳盒缺粉,应该是均匀地浅或者空白,如果是成像鼓的问题,应该是从上到下成条状的不均匀,这样显示一节后空白......
  • Mybatis:解决实体类驼峰命名与数据库字段之间映射的问题
    数据库的命名规则都是_来隔开单词,Java中是驼峰命名法,所以导致实体类与数据库字段不一致,从而返回的结果有部分会被丢失。一、可以在mapper.xml中通过resultMap来解决:......
  • 漏洞实战部分2-安卓应用ZipEntry对象问题实战
    安卓应用漏洞学习本节课介绍ZipEntry对象,这个对象常用于解压压缩包操作。//ThisclassisusedtorepresentaZIPfileentry.//Author://DavidConnellypubliccla......