weixin_35754367 2016-07-31 14:54 采纳率: 50%
浏览 1100
已采纳

java,初学者不太清楚

1元一瓶饮料,两个空瓶可以换一瓶饮料,三个瓶盖可以换一瓶饮料,20块钱可以喝多少瓶饮料?

  • 写回答

1条回答 默认 最新

  • threenewbee 2016-07-31 14:53
    关注
     package test1.test1;
    
    public class Ale  {
        static int money = 20;     // 多少钱
        static int per = 1;        // 多少钱买一瓶 >0
        static int empty = 2;    // 多少空瓶换一瓶 >0
        static int cap = 3;        // 多少瓶盖换一瓶 >0
        static int sum = 0;     // 总数 
    
        public static void main(String[] args) {
            for(int i=1;i<=20;i++) {
                money = i;
                cal(money/per,0,0);
                System.out.println(money+"元钱共可以喝:"+sum+" 瓶");
                sum = 0;
            }
    
        }
        /**
         * 计算方法
         * @param i    换一轮之后还没喝的瓶数 
         * @param j    空瓶数
         * @param k    瓶盖数
         */
        public static void cal(int i,int j,int k) {
            int i1=0,j1=0,k1=0;
            sum += i; // 一开始喝完
            j += i;// 喝完后的空瓶数
            k += i;// 喝完后的瓶盖数
            if(j >= empty) {// 空瓶可以换
                i1 += j/empty;
                j1 = j%empty; // 换了之后的空瓶数
            }else { // 空瓶不能换
                j1 = j;
            }
            if(k >= cap) {// 瓶盖可以换
                i1 += k/cap;
                k1 = k%cap; // 换了之后的瓶盖数
            }else { // 瓶盖不能换
                k1 = k;
            }
            if(i1 >0 || j1 >= empty || k1 >= cap) {
                // 如果可以换则继续
                cal(i1,j1,k1);
            }
        }
    }
    

    运行结果:
    1元钱共可以喝:1 瓶
    2元钱共可以喝:5 瓶
    3元钱共可以喝:11 瓶
    4元钱共可以喝:17 瓶
    5元钱共可以喝:23 瓶
    6元钱共可以喝:29 瓶
    7元钱共可以喝:35 瓶
    8元钱共可以喝:41 瓶
    9元钱共可以喝:47 瓶
    10元钱共可以喝:53 瓶
    11元钱共可以喝:59 瓶
    12元钱共可以喝:65 瓶
    13元钱共可以喝:71 瓶
    14元钱共可以喝:77 瓶
    15元钱共可以喝:83 瓶
    16元钱共可以喝:89 瓶
    17元钱共可以喝:95 瓶
    18元钱共可以喝:101 瓶
    19元钱共可以喝:107 瓶
    20元钱共可以喝:113 瓶

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)