海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只 猴子把多的一个扔入海中,拿走了一份。 第二只猴子把剩下的桃子又平均分成五份,又多了 一个,它同样把多的一个扔入海中,拿走了一份, 第三、第四、第五只猴子都是这样做的, 问海滩上原来最少有多少个桃子?

/*
海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只 猴子把多的一个扔入海中,拿走了一份。
第二只猴子把剩下的桃子又平均分成五份,又多了 一个,它同样把多的一个扔入海中,拿走了一份,
第三、第四、第五只猴子都是这样做的, 问海滩上原来最少有多少个桃子?

解题思路:
从第五步逆推:
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);
        }


    }
}
posted @ 2020-01-11 16:21  dreamy_java  阅读(1615)  评论(0编辑  收藏  举报