海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分为五份,又多了一个,它同样把多的一个扔入海......

<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

猜你喜欢

转载自blog.csdn.net/weixin_68067009/article/details/124228632