java中喝汽水的代码题 java汽水瓶

一元钱一瓶汽水 , 两个空瓶能换一瓶汽水,三个瓶盖能换一瓶汽水,问20元一共能喝多少瓶 。java代码怎么写?package 递归;
import java.util.Scanner;
public class 汽水 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("请输入您购买汽水所花java中喝汽水的代码题的钱");
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;//每次循环所增加java中喝汽水的代码题的汽水
sum=sum+add;
System.out.println(sum);
cap=cap%3+add;//每次循环后java中喝汽水的代码题的瓶盖子
System.out.println(cap);
bottle=bottle%2+add;//每次循环后java中喝汽水的代码题的瓶子
System.out.println(bottle);
System.out.println("-----------------");
if(cap3bottle2){//递归结束java中喝汽水的代码题的条件
return sum;
}else{
return cal(sum,cap,bottle);//递归调用
}
}
}
20元一共能喝113瓶
求解各位高手:用java解决品尝饮料问题,越简单越好,尽量简单我自己构造了一个例子,你看看符不符合要求:
/**
* @author DQQ Drink抽象类
*/
public abstract class Drink {
public void drink() throws DrinkNotFoundException {
};
}
////////////////////////////////////////////////////////////////////////////////////////////////
/**
* @author DQQ Drink的子类
*/
public class DrinkTea extends Drink {
private int num = 0; // 饮料的数量,如果为0,就会触发DrinkNotFoundException
public DrinkTea() {
super();
}
public DrinkTea(int num) {
super();
this.num = num;
}
/**
* 重写Drink抽象类的drink方法
*
* @throws DrinkNotFoundException
*/
@Override
public void drink() throws DrinkNotFoundException {
if (num = 0) {
throw new DrinkNotFoundException();
}
System.out.println("我喝了一瓶饮料......");
num--;
}
/**
* 添加一瓶饮料
*/
public void add() {
System.out.println("我买了一瓶饮料......");
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}
////////////////////////////////////////////////////////////////////////////////////////////////
/**
* @author DQQ 自定义异常类
*/
public class DrinkNotFoundException extends Exception {
private static final long serialVersionUID = 1L;
public DrinkNotFoundException() {
super("饮料喝完了,没有饮料了");
}
public DrinkNotFoundException(String msg) {
super(msg);
}
}
////////////////////////////////////////////////////////////////////////////////////////////////
/**
* @author DQQ 测试类
*/
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
try {
DrinkTea dirTea = new DrinkTea(1);
dirTea.drink();
} catch (DrinkNotFoundException e) {
System.out.println(e.getMessage());
}
}
}
Java代码怎么写:有20块钱买汽水 , 1块一瓶,三盖子换一瓶,两空瓶换一瓶子,共能买多少汽水?正确的结果:对兑了17次 , 共换了93个瓶子,第18次对兑时余下1个空瓶,2个瓶盖 。
递归模型楼上“lzs丶灬 ”同志是正确的,但存在逻辑错误 。我帮他修正如下:

推荐阅读