面试题(一次有意思的买饮料)
题目
你有 20 块钱,一瓶饮料卖 5 块钱,2个瓶身可以换一瓶饮料,4个瓶盖可以换一瓶饮料。问最多可以喝多少瓶饮料
思路
【面试题(一次有意思的买饮料)】除了第一次用钱买,剩余的均是通过瓶身或瓶盖兑换而来,那么兑换到直到瓶身和瓶盖无法兑换为止
编码
function buyDrinks(total, price) {
//第一次用钱购买
const firstNum = Math.floor(total / price);
let res = firstNum;
// 剩余瓶盖
let remainCap = firstNum;
// 剩余瓶身
let remainBody = firstNum;
// 兑换
while(remainCap >= 4 || remainBody >= 2) {
// 瓶盖可兑换数量
const numCap = Math.floor(remainCap / 4);
// 瓶身可兑换数量
const numBody = Math.floor(remainBody / 2);
// 总共兑换的数量
const changeTotal = numCap + numBody;
res += changeTotal;
remainCap = remainCap % 4 + changeTotal;
remainBody = remainBody % 2 + changeTotal;
}return res;
} console.log(buyDrinks(20, 5))
推荐阅读
- PMSJ寻平面设计师之现代(Hyundai)
- 杜月笙的口才
- 【故障公告】周五下午的一次突发故障
- 我要我们在一起(二)
- Linux下面如何查看tomcat已经使用多少线程
- 皮夹克
- 洱海不是海,,人群没有你
- 解读《摩根集团》(1)
- 绘本与写作
- 我的拖延症如何控制了我,又一次