C言語でウサギとニワトリの閉じ込めの問題をどうやって解決しますか?

ニワトリとウサギがいる問題の解決法は、ループ、条件文を使用した典型的な数学の問題です。

まず、問題の条件と目標を明確にします。檻の中にn羽の動物(鶏と兎)がいるとし、足の数すべての数がm本です。問題は鶏と兎の数を解くことです。

鶏が i 羽、兎が n-i 羽の場合、鶏の足は 2i 本、兎の足は 4(n-i) 本となるので、足の合計本数が m 本かどうかでその場合が条件を満たすかどうかを判定できる。

以下にサンプルコードを示します。

#include <stdio.h>

int main() {
    int n, m;
    printf("请输入动物的总数量:");
    scanf("%d", &n);
    printf("请输入总腿数:");
    scanf("%d", &m);

    int i, j;
    int flag = 0; // 标记是否找到解
    for (i = 0; i <= n; i++) {
        if (2*i + 4*(n-i) == m) {
            printf("鸡的数量:%d,兔的数量:%d\n", i, n-i);
            flag = 1; // 找到解
            break;
        }
    }

    if (!flag) {
        printf("无解\n");
    }

    return 0;
}

このコードでは、すべてのあり得るニワトリの数 i (0 から n) に対して循環し、対応するウサギの数 (n-i) を計算します。次に、現在の状況における足の数が m と等しいかどうかを判断します。等しい場合は解を出力し、フラグ flag を 1 に設定します。すべての場合を調べた後も flag が 0 の場合は、解がないことを示します。

このコードは、nとmが負の値や解がないなどの入力の妥当性を考慮していないことにご注意ください。実際のアプリケーションでは、入力の妥当性チェックとそれに応じたエラー処理が必要になる場合があります。

bannerAds