面试题:喝啤酒:2块一瓶,2空瓶换一瓶,4瓶盖换一瓶,10块钱喝几瓶?
思路:
是先买一瓶,然后判断1瓶喝完能否兑换,不能再买一瓶,然后判断2瓶能否兑换,依次类推直到花完10元钱,且手上的空瓶和瓶盖无法兑换酒时所总共喝到的酒的数量就是10元能喝的酒的总数
理论先行,实践开始。
public class Demo {
public static void main(String[] args) {
//我们还可以改变代码,动态的输入一个数去判断,要灵活应对
int money = 10;
int bottles = money/2;
for(int i=1;i<=bottles;i++) {
//当能被2整除时说明空瓶有两瓶可以兑换一瓶,喝的酒+1
if( i % 2 == 0) {
bottles++;
}
//当能被4整除时说明瓶盖有4个可以兑换一瓶,喝的酒+1
if(i % 4 ==0) {
bottles++;
}
}
System.out.println(money + "元钱可以喝" +bottles+ "瓶酒");
}
}
最终运行结果: 10元钱可以喝15瓶酒
这个过程按我们平常数学思维来说肯定是很难理解的方法,但是对于编程来说,因为有循环语句的缘故这种思维却可以让代码很简洁