#用Java解决一个小问题(脑筋急转弯)
问题:一元一瓶矿泉水,喝完后两个空瓶换一瓶矿泉水
问:你有20元,最多可以喝几瓶矿泉水
由于这个问题代码较少,我就直接在主函数中写了
public class Test_All{ //自己定义的一个类
public static void main(String[] args){
int a,b,sum;
//这里的'a'是有多少钱,'b'是剩出不能换水的空瓶,'sum'喝多少水
for(a=20,sum=0,b=0;;){ //初始化a,b,sum
if(a>1){
sum=sum+a;
b=b+a%2; //先将多出来的空瓶算出来
a=a/2; //再将可以喝多少水算出来
}
if(a==1&&b==1){
//如果手中有个空瓶,还有一瓶水,就可以再喝一瓶水
a++;
b=0;
}
if(a<=1)break; //如果手上只有一个空瓶或者没有瓶子就跳出循环
}
//在这里有一个坑,就是自己手中有个空瓶,可以向商家借一个空瓶,之后换一瓶水,这样又可以可到一瓶水,所有还要执行一行代码,哈哈哈。
if(a==1){
sum++;
}
System.out.println(sum);
}
}
最后答案是一共喝了40瓶水
当然了,也可以导包将20元改为输入的的输入的"Sacnner"
这好像是小学的奥数题,没想到自己写代码也能解决,
最后送大家一句话:山高有顶,水深有底,而学无止境。