Java代码怎么写:有20块钱买汽水,1块一瓶,三盖子换一瓶,两空瓶换一瓶子,共能买多少汽水?

Java代码怎么写:有20块钱买汽水,1块一瓶,三盖子换一瓶,两空瓶换一瓶子,共能买多少汽水?,第1张

正确的结果:对兑了17次,共换了93个瓶子,第18次对兑时余下1个空瓶,2个瓶盖。

递归模型楼上“lzs丶灬 ”同志是正确的,但存在逻辑错误。我帮他修正如下:

   public static int test(int sum, int pingzi, int gaizi){

            if (pingzi < 2 && gaizi < 3)

            {

                return sum

           裤雹 }

            int newPingzi = pingzi / 2

            int newGaizi = gaizi / 3

            sum += newPingzi

            sum += newGaizi

        胡携帆    pingzi = newPingzi + newGaizi + pingzi % 2

            gaizi = newGaizi + newPingzi + gaizi % 3

        隐闷    return test(sum, pingzi, gaizi)

  }

package 递归

import java.util.Scanner

public class 汽水 {

public static void main(String[] args) {

Scanner scan=new Scanner(System.in)

System.out.println("请输入您购买汽水所花的钱")

int money=scan.nextInt()

System.out.println("20元一共能喝"+cal(money,money,money)+"瓶")

}

/**

*

* @param sum 总瓶数

* @param cap 瓶盖数

* @param bottle 瓶子数

* @return

*/

public static int cal(int sum,int cap,int bottle){

int add=cap/3+bottle/2//每次循环所增没洞加的汽水

sum=sum+add

System.out.println(sum)

cap=cap%3+add//每次循环后中察悄的瓶盖子

System.out.println(cap)

bottle=bottle%2+add//每次循环后的瓶子

System.out.println(bottle)

System.out.println("-----------------")

if(cap<3&&bottle<2){//递归结束的条件

return sum

}else{

return cal(sum,cap,bottle)//递归调用卖渣

}

}

}

20元一共能喝113瓶


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12497448.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存