Java啤酒问题

啤酒问题:

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

两个空瓶换一瓶酒

四个瓶盖换一瓶酒

 

最后能买多少啤酒?

 

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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);
        }
    }
}

 

输出结果:

1
2
3
totalNumber = 19
lastBottleNumber = 1
lastCoverNumber = 3

  

 

  

posted @   宝山方圆  阅读(65)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
历史上的今天:
2015-12-18 Hibernate中HQLwhere用法和单独取出几列数据的读取方法
点击右上角即可分享
微信分享提示