<script>
//海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分为五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
//思路:假设一开始有一个桃子,肯定不够分。然后在这一个桃子的基础上,利用do...while循环。每次来一个猴子,桃子数量就会减一再乘以0.8(即拿五分之一剩下五分之四),只要判断五次循环后,拿到的五分之一的桃子是否为整数即可。
//声明变量桃子 1个
let peach = 1;
do {
//循环每次加一个桃子
peach++;
//声明变量,res为猴子拿走桃子后剩下的桃子数量,get为猴子拿到的桃子数量
var res = peach, get = 0;
//循环5次,每次来一只猴子拿桃子
for (let monkey = 1; monkey <= 5; monkey++) {
//每次得到的数量就是剩下的桃子数量减去扔进大海的五分之一
get = (res - 1) * 1 / 5;
//每次剩余的数量就是剩下的桃子数量减去扔进大海的五分之四
res = (res - 1) * 4 / 5;
}
} while (get !== Math.floor(get))
//如果get数量不是整数,就一直循环。如果为整数,则退出循环,打印出海滩上至少拥有的桃子数量
console.log(`海滩上原来至少有${peach}个桃子`);
//答案是3121