杂记——喵哥吃鱼的问题

来源:互联网 发布:长沙淘宝仓库打包招聘 编辑:程序博客网 时间:2024/05/24 00:53

喵哥很喜欢吃小鱼干,小鱼干2金一条,吃完的2个鱼头可以换1条小鱼干,4条鱼骨可以换1条小鱼干!(不可以:赊账、用鱼骨换鱼头),问10金最多可以吃几条小鱼干?


解题:

问题的关键在,每次吃完鱼都会剩鱼头和鱼骨,剩的鱼头和鱼骨又可以再换小鱼干。

需要用到递归的算法。

写一个函数,参数是上一次剩的鱼头和鱼骨,求得本次吃完剩下的鱼头和鱼骨,返回本次吃鱼的条数+下次吃的条数

var gold = 10;var price = 2;var _head, _body;(function fn1(gold, price) {    var fish = parseInt(gold / price);    var _fish = fn2(fish, fish);    console.log(fish + _fish);}(gold, price))function fn2(head, body) {    if (head >= 2 || body >= 4) {        _head = parseInt(head / 2) + (head % 2) + parseInt(body / 4);        _body = parseInt(body / 4) + (body % 4) + parseInt(head / 2);        return parseInt(head / 2) + parseInt(body / 4) + fn2(_head, _body);    }    return 0;}

答:喵哥最多能吃到15条小鱼干

原创粉丝点击