1、海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
2、思想:因为第五个猴子的做法也是扔掉一个桃子,再分为五份,取走一份,所以最后一次最少有6个桃子,
6个桃子往前推,第四次的桃子数m=(6+1)*5+1,以此类推,必须每次都可以被4整除才符合条件,最开始拥有的桃子数利用n=(n/4)*5+1求得
3、代码
#include <stdio.h>
int main()
{
int i;
int j=1;//第五只猴子分的桃子
int n;//桃子数
while(1)
{
n=4*j;
printf("第五只猴子分得桃子为%d个时,剩余桃子数为%d\n",j,n);
for(i=0;i<5;)
{
if(n%4!=0)
break;//必须连续五次x都能被4整除才符合条件,否则跳出循环,j++,再次执行
else
{
n=(n/4)*5+1;
printf("第五只猴子分得桃子为%d个时,剩余桃子数为%d\n",j,n);
i++;
}
}
printf("\n");
j++;
if(i==5)
break;
}
printf("%d",n);
return 0;