/* 海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只 猴子把多的一个扔入海中,拿走了一份。 第二只猴子把剩下的桃子又平均分成五份,又多了 一个,它同样把多的一个扔入海中,拿走了一份, 第三、第四、第五只猴子都是这样做的, 问海滩上原来最少有多少个桃子? 解题思路: 从第五步逆推: 5x+1=4y; 4y+y+1=4z; 4z+z+1=4p; 4p+p+1=4s; 4s+s+1=最初 y=(5x+1)/4; 4z=5y+1=(5x+1)/4*5+1 */ #include<stdio.h> #include<math.h> #include<malloc.h> #include<string.h> #define N 8 main() { int c,i,j,k=0,t; for(i=4;i<10000;i=i+4){ c=1; t=i; for(j=0;j<5;j++){ k=i/4*5+1; i=k; if(k%4==0){ c++; }else{ break; } } i=t; if(c==5){ printf("%d ",k); } } }