一只猴子摘桃子,摘累了,决定休息一下再分桃子。
过了一会,来了一只猴子,把所有桃子均分成了5分,结果多了1个,
就把多出的吃了, 然后拿走了其中的一份;过了一会,又来了一只猴子,
它并不知道前面已经有猴子来过了, 也把所有桃子均分成了5分,结果多了1个,
就把多出的吃了,然后拿走了其中的一份; 后面的第3、4、5只猴子也是同样的道理,
分5份,吃一个,拿走一份。 问这堆桃子最初总共至少有( )个?最后又会剩 ( ) 个?
function demo(houzi){
var arr = []; // 记录每一个猴子拿走的个数
var taozi = 1; // 默认为1个
var remainder = 0; // 记录剩余个数
for(var i=0;i<houzi;i++){
arr.push(taozi); // 把当前猴子拿走的一份记录下来
taozi = taozi*5+1; // 前一个猴子分成了5份并吃了多出来的一个
}
// 以下计算剩余个数
for(var i=0;i<arr.length;i++){
remainder += arr[i];
}
remainder = taozi - remainder - houzi;
console.log("总共至少有="+taozi);
console.log("最后剩余="+remainder);
}
demo(1) // 6 4
demo(2) // 31 22
demo(3) // 156 115
demo(4) // 781 583
demo(5) // 3906 2926