思路:从A到F,每个人醒来后都会将鱼分为六份,留下自己的一份,扔掉多余的两条鱼。假设他们合伙至少捕到x条鱼,则每个人拿到的鱼数为$(x-2)/6$(向下取整),加上自己的一份,即为$(x+4)/6$(向上取整)。最后将这六个人拿到的鱼数加起来,如果等于x,则没有扔掉多余的鱼,否则需要补上扔掉的鱼的数量。

代码:

#include <stdio.h>

int main() {
    int x = 0;
    while (1) {
        int fish = 0;
        fish += (x + 4) / 6;  // A
        fish += (x + 4) / 6;  // B
        fish += (x + 4) / 6;  // C
        fish += (x + 4) / 6;  // D
        fish += (x + 4) / 6;  // E
        fish += (x + 4) / 6;  // F
        if (fish == x) {
            printf("fish=%d\n", x);
            break;
        }
        x++;
    }
    return 0;
}
六人合伙捕鱼:C语言求解最少捕鱼数量

原文地址: https://www.cveoy.top/t/topic/oZt8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录