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

程序分析:根据题意,假设海滩上原来最少有 x 个桃子。根据第一个猴子的描述,桃子数量应满足以下条件:x ≡ 1 (mod 5),即 x 除以 5 的余数为 1。根据第二个猴子的描述,剩下的桃子数量应满足以下条件:(x - 1) 4/5 ≡ 1 (mod 5),即 (x - 1) 4/5 除以 5 的余数为 1。依次类推,根据第三、第四、第五只猴子的描述,剩下的桃子数量都满足类似的条件。找到符合条件的 x,即为答案。

实例

#include<stdio.h>
#include<stdlib.h>

int main() {
    int x, i = 0, j = 1;

    while (i < 5) {
        x = 4 * j;
        for (i = 0; i < 5; i++) {
            if (x % 4 != 0) {
                break;
            }
            x = (x / 4) * 5 + 1;
        }
        j++;
    }

    printf("%d\n", x);

    return 0;
}

以上实例运行输出结果为:

3121

在上述代码中,我们使用了一个循环来找到符合条件的桃子数量 x。变量 j 用于递增测试桃子数量。内部的 for 循环用于检查是否符合猴子分桃的条件,即 x % 4 != 0,如果符合则进行下一次循环,否则继续增加桃子数量。最终找到满足条件的 x,并输出。

以上实例运行时,会输出满足猴子分桃条件的最少桃子数量。例如,输出结果为 3121,表示海滩上原来最少有 3121 个桃子。

该程序通过循环逐个增加桃子数量,并根据猴子分桃的条件进行检查,直到找到满足条件的最小桃子数量。

标签: c语言, c语言教程, c语言技术, c语言学习, c语言学习教程, c语言下载, c语言开发, c语言入门教程, c语言进阶教程, c语言高级教程, c语言面试题, c语言笔试题, c语言编程思想, c语言练习, c语言练习题