猴子粉桃问题,过来看看
//海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的
一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
这题采用逆推法,我百度可以做出来,可是,要是第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();