注册 登录
编程论坛 C# 论坛

猴子粉桃问题,过来看看

学好好要饭 发布于 2016-05-16 11:26, 2356 次点击
    //海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把
                                               
      多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的

     一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?


这题采用逆推法,我百度可以做出来,可是,要是第10只猴子,第100只猴子怎么办,只能用for循环的吧,附上现在的答案,可以实现,但是不怎么好,
    int i1, i2, i3, i4, i5;
            for (int i = 5; i < 1000; i++)
            {
                //最后一堆的桃子数
                if ((i*5 + 1)%4 == 0)
                {
                    //最后第二堆的桃子数
                    i2 = (i*5 + 1)/4*5 + 1;
                    if (i2%4 == 0)
                    {
                        //最后第三堆得桃子数
                        i3 = i2/4*5 + 1;
                        if (i3%4 == 0)
                        {
                            i4 = i3/4*5 + 1;
                            if (i4%4 == 0)
                            {
                                i5 = i4/4*5 + 1;
                                Console.WriteLine("最后一个拿走的桃子数是:{0}",i);
                                Console.WriteLine("桃子数为:{0}",i5);
                            }
                        }
                    }
                }
            }
            Console.Read();
3 回复
#2
学好好要饭2016-05-16 14:02
没有人会吗!?。。。。。。。。
#3
qq10235692232016-05-16 19:53
用顺推也可以做,从4开始。
#4
学好好要饭2016-05-18 15:34
回复 3楼 qq1023569223
要是猴子多了,怎么顺推
1