程序员喝饮料
苦逼的程序员宅男,七夕没妹纸陪,算算一个奥数问题。
1元钱可以买一瓶汽水、2个空瓶子换1瓶汽水,
不能借空瓶。20快钱能买几瓶?
方法一:
20块买20瓶,20瓶换10瓶,10瓶换5瓶,拿5瓶中的4瓶换2瓶,2瓶换1瓶,1瓶和之前剩下的1瓶换1瓶,最后剩下一个空瓶
20+10+5+2+1+1 =39瓶。
方法二:
用递归的方法,一瓶一瓶买,有2空瓶了就去换,直到把钱用完。
(物价通胀厉害,RMB这么买东西就爽了)
function dealDrink(money,eBottles){
var rBottles = 0;//喝掉的瓶数
eBottles = eBottles || 0;//空瓶数
if(money > 0){
money -= 1;
rBottles += 1;
eBottles += 1;
if(eBottles == 2){//两瓶换1瓶
rBottles += 1;
eBottles = 1;
}
if(money > 0){
return rBottles + dealDrink(money,eBottles);
}
}
return rBottles;
}
alert(dealDrink(20,0));
结果也是39瓶,剩下1个空瓶。有点失望啊,结果是一样的。
不信?去alert看看,我反正信了。。