一只小猴子一天摘了许多桃子,第一天吃了一半,然后忍不住又吃了一个;第二天又吃了一半,再加上一个;后面每天都是这样吃,到第10天的时候,小猴子发现只有一个桃子了,问小猴子第一天共摘了多少个桃子?
我们可以使用递归解决猴子吃桃问题
代码实现:
/* 思路引导:
天数 桃子数
第10天 1个
第9天 ( 第10天桃子数 + 1 ) * 2
第9天桃子 - 第9天桃子/2 - 1 = 第10天桃子数
第9天桃子 - 第9天桃子/2 = 第10天桃子数 + 1
第9天桃子/2 = 第10天桃子数 + 1
第9天桃子 = (第10天桃子数 + 1 ) * 2
第8天 (第9天桃子数 + 1 ) * 2
...
*/
// days参数表示第多少天
function peach(days) {
if (days == 10) { // 第10天只剩下一个桃子
return 1;
}
return (peach(days + 1) + 1) * 2;
}
for (var i = 1; i <= 10; i++) {
console.log("第" + i + "的天的桃子数" + peach(i));
}
输出结果: