有50瓶饮料,喝完后每三个空瓶子可以换一瓶,问总共可以喝多少瓶饮料?用JAVA写一个程序
答案:3 悬赏:30 手机版
解决时间 2021-01-20 21:33
- 提问者网友:放下
- 2021-01-20 14:28
有50瓶饮料,喝完后每三个空瓶子可以换一瓶,问总共可以喝多少瓶饮料?用JAVA写一个程序
最佳答案
- 五星知识达人网友:洎扰庸人
- 2021-01-20 15:41
int bdrink(int drink,int empty_bottle,int full_bottle)//drink表示喝的瓶数,empty_bottle是空瓶数,full_bottle是满瓶数
{
if(full_bottle>0)//当可以换到满瓶时
{
drink+=full_bottle;
empty_bottle+=full_bottle;
full_bottle=empty_bottle/3;
empty_bottle-=(full_bottle*3);
return bdrink(drink,empty_bottle,full_bottle);
}
else//不能换到满瓶饮料时
{
if(empty_bottle==2)//如果剩余空瓶为2,可以通过借一个空瓶换一个满瓶,喝完还回去的方法多喝一瓶
return drink+1;
else
return drink;
}
}
调用是bdrink(0,0,50);
{
if(full_bottle>0)//当可以换到满瓶时
{
drink+=full_bottle;
empty_bottle+=full_bottle;
full_bottle=empty_bottle/3;
empty_bottle-=(full_bottle*3);
return bdrink(drink,empty_bottle,full_bottle);
}
else//不能换到满瓶饮料时
{
if(empty_bottle==2)//如果剩余空瓶为2,可以通过借一个空瓶换一个满瓶,喝完还回去的方法多喝一瓶
return drink+1;
else
return drink;
}
}
调用是bdrink(0,0,50);
全部回答
- 1楼网友:北方的南先生
- 2021-01-20 17:30
int sum=0; for(int i=50;i<=3;i/3+i%3) { sum=i/3 } 输入sum 试下吧 不敢确定 电脑上没软件
- 2楼网友:举杯邀酒敬孤独
- 2021-01-20 16:57
package test;
public class Sum {
public int add(int a,int b){
if(a+b>=3){
//a/3可以在下一轮中兑换到的饮料瓶数
//a%3是本轮中剩下的空瓶数
if(a==2){
return a+add(a/3,a%3)+(b+2)/3;
}
return a+add(a/3,a%3)+(b+1)/3;}
else{
return a;
}
}
}
//非递归算法
package test;
public class Sum2 {
public int add(int a){
int count= 0;
int c;
int i=0;
for(c=a;c>0;c--){
i++;
if((i%3)==0){
count++;
c++;
}
}
return a+count;
}
}
答案应该是74瓶
public class Sum {
public int add(int a,int b){
if(a+b>=3){
//a/3可以在下一轮中兑换到的饮料瓶数
//a%3是本轮中剩下的空瓶数
if(a==2){
return a+add(a/3,a%3)+(b+2)/3;
}
return a+add(a/3,a%3)+(b+1)/3;}
else{
return a;
}
}
}
//非递归算法
package test;
public class Sum2 {
public int add(int a){
int count= 0;
int c;
int i=0;
for(c=a;c>0;c--){
i++;
if((i%3)==0){
count++;
c++;
}
}
return a+count;
}
}
答案应该是74瓶
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯