面试趣味题
題目:一元錢可以買到一瓶水,兩個空瓶子可以換一瓶水,小明有20元錢,問最多可以喝多少瓶水?
在面試的時候做了一個這種邏輯題。當時只是要求寫出最后的結果。沒有要求用代碼來實現。我下面準備先分析一下,然后再轉換成代碼去實現。
? ?根據這個示意圖可以簡單的算出最多可喝39瓶水,還剩一個空瓶。
? ?遇到這個題數比較小,我們能很快推出來,但是如果數很大此時該怎么辦?又或者是面試官不是讓你直接寫答案,而是叫你直接擼代碼。
所以我下面就自己根據這個題目的要求去嘗試寫了一下代碼。代碼如下:
function Drink(){this.max = 0;this.drinkNum = 0; } Drink.prototype.pay = function(moneny,price,baseNum,drinkNum){if(drinkNum){if(drinkNum > (baseNum -1)){var num = drinkNum/baseNum;this.drinkNum = this.drinkNum + Math.floor(num);this.pay(moneny,price,baseNum,Math.floor(num) + drinkNum%baseNum);}}else{this.max += Math.floor(moneny/price);this.drinkNum = this.max;this.pay(moneny,price,baseNum,this.drinkNum);}}var drinkobj = new Drink(); drinkobj.pay(20,1,2); console.log(drinkobj.drinkNum);?
轉載于:https://www.cnblogs.com/justyouadmin/p/10620463.html
總結
- 上一篇: Robbers' watch CodeF
- 下一篇: 第六章 传输层