其实就是递归知识的运用!下面是代码,
public static void main(String[] args) {Systemoutprintln(20+getNum(20));
}
public static int getNum(int money){
int sum = 0;
sum += (money / 2);
if(money>=2)
return sum+getNum(sum+money%2);
else
return 0;
}
运行下你就知道答案了!
设两个瓶子为a和b,液体分别为1和2,c瓶作为中间的过渡:
#include<stdioh>
void
main()
{int
a=1,b=2,c;
c=a;a=b;b=c;
printf("a=%d,b=%d\n",a,b);
}
#include"stdioh"
换一瓶啤酒,x块钱可以喝几瓶啤酒?/
void main()
{
int money,beer,bottle,cap,sum;
scanf("%d",&money);
bottle=cap=sum=money/2;
while(!(cap<4 && bottle <2)) //当瓶盖数小于4并且瓶子数小于2时,就不能换啤酒了哇
{
sum+=bottle/2; //瓶子换啤酒
sum+=cap/4; //瓶盖换啤酒
//瓶盖兑换成啤酒之后的瓶盖数和瓶子数
bottle+=cap/4; //4个瓶盖换一瓶啤酒,那么瓶子数增加的数量
cap=cap/4+cap%4;
//瓶子兑换成啤酒之后的瓶盖数和瓶子数
cap+=bottle/2; //2个瓶子换啤酒后增加的瓶盖数
bottle=bottle/2+bottle%2;
}
printf("能喝的啤酒数量 = %d 瓶\n",sum);
}
#include<stdioh>
int main()
{
//当前有Num个可乐瓶
int Num=364;
//总共喝了Tot瓶可乐
int Tot=0;
//当大于等于3时可换可乐
while(Num>=3)
{
//喝3瓶换一瓶
Num-=2;
Tot+=3;
}
//剩下Num瓶喝掉
Tot+=Num;
printf("剩%d瓶\n",Num);
printf("总共喝了%d瓶\n",Tot);
return 0;
}
一共可以喝449瓶,还剩下一个空瓶子。
300瓶啤酒,300空瓶,换100啤酒。100空瓶,换33啤酒,剩下一个空瓶子。33空瓶,换11啤酒,刚才剩下的那个空瓶子依然剩下。11个空瓶加刚才剩下的那个空瓶子,是12个空瓶,换4瓶啤酒,4个空瓶只能换一瓶啤酒,最终剩下1个空瓶。
啤酒总数:
300+100+33+11+4+1=449
以上就是关于Java空瓶换饮料问题 一瓶饮料1元钱,两个空瓶换一瓶,有20元总共可以喝几瓶全部的内容,包括:Java空瓶换饮料问题 一瓶饮料1元钱,两个空瓶换一瓶,有20元总共可以喝几瓶、用c语言编写两个瓶子液体交换、急需!、啤酒2块钱一瓶,4个瓶盖可以换一瓶,2个瓶子可以 换一瓶啤酒,x块钱可以喝几瓶啤酒我用C语言编的,但有错等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)