1、先以 5 小猴子分桃子为例,每个小猴子分桃子时都是分成 5 堆多一个,5 堆多一个这种情况一共有 5 次,这样就很容易想到先借这些猴子 4 个桃子,这样的话每个猴子可将桃子平均分成 5 堆,这样的情况一共有 5 次。因为题目要求求出最少的符合要求的桃子的数目。所以有 5 个小猴子的时候,最少的桃子的数为:55-4;当有 n 个小猴子的时候,最少的桃子数为 5n-4。留下给老猴子的桃子数为:n+(x+4)*(4/5)n-4;代码:View Code #includeint main()int n;while (scanf(“%d“, _int64 sum=1;for (i=1; i=n; i+)
2、 /桃子数为 sum-4;sum*=5;_int64 old=sum;for (i=1; i=n; i+) /老猴子得到的桃子数为 old+n-4;old=old/5*4;printf(“%I64d %I64dn“, sum-4, old+n-4);return 0;这道题的解法很多,最简单的解法是先给这堆桃子添上 4 只。第一只猴子:恰好将这堆桃子均分为 5 份(每份比原来多 1 只) 。它走后,留下 4 份,比原来留下的 4 份多 4 只;第二只猴子:也恰好将剩下的桃子均分为 5 份(每份比原来多 1 只) 。它走后,留下 4份,比原来留下的 4 份多 4 只。依此类推,每只猴子都可以将桃
3、子均分为 5 份。如果最后一只猴子分的时候,桃子是 K5 只(K 是一个整数) ,它相当于第四只猴分剩的 4 份,那么第 4 只猴子分的时候,桃子是 K545 只,第三只猴子分的时候,桃子是K5454545 只,第二只猴子分的时候,桃子是 K5454545 只,第一只猴子分的时候,桃子是 K545454545 只,即 55555 4444 K 只(桃子的总数) 。由于桃子的总数是整数,所以 K 是 44444 的倍数,桃子的总数是3125(55555)的倍数。如果现在桃子总数是 3125,那么原来的桃子总数 3121(31254) ;如果现在桃子总数是 31252,那么原来桃子总数是 6246(312524)最后剩下的桃子数是 K44,即 1020(444444) ,2044(2444444)这样,问题的答案就不唯一了。最小的答案是:原来桃子的总数是 3121 只,最后剩下1020 只。