20元买汽水,1元买1瓶,2个空瓶换1瓶汽水,3个瓶盖换一瓶汽水。(不考虑借贷)我这样写的代码有问题吗,答案应该是多少

愿吟 2019-11-26 10:28:29
public class Demo2 {

public static void main(String[] args) {
System.out.println(buy(20,0,0,0));

}
//money:钱 pz:空瓶子 gz:盖子 qs:换得的汽水总数
public static int buy(int money,int pz,int gz,int qs) {
if(money>0) {
qs=money;
money=0;
pz=qs;
gz=qs;
return buy(0,pz,gz,qs);
}
if(pz>=2) {
qs+=pz/2;
gz+=pz/2;
pz=pz/2+pz%2;
return buy(0,pz,gz,qs);
}
if(gz>=3) {
qs+=gz/3;
pz+=gz/3;
gz=gz/3+gz%3;
return buy(0,pz,gz,qs);
}
return qs;
}

}运行结果113
...全文
284 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jack5246 2019-11-27
  • 打赏
  • 举报
回复
没什么问题
和我通过规律写的简便算法一样

public static int sodaSum(int soda) {
if(soda > 2){
return 5 + (soda - 2) * 6;
}
if(soda > 1){
return 5;
}
return soda;
}

62,636

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧