首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言問答

C語言解決雞兔同籠問題:數學建模與整數解判斷完整代碼

     編輯:C 語言問答

數學模型

設雞 x 隻,兔 y 隻:


x + y = heads      (頭數)
2x + 4y = legs     (腳數)

解得:


y = (legs - 2*heads) / 2
x = heads - y

完整代碼 (含整數解/非負驗證)


#include <stdio.h>

int main() {
    int heads, legs;
    printf("請輸入頭數和腳數:");
    if (scanf("%d %d", &heads, &legs) != 2) return 1;

    // 必須滿足:腳數為偶數、2*heads <= legs <= 4*heads
    if (legs % 2 != 0 || legs < 2*heads || legs > 4*heads) {
        printf("無解\n");
        return 0;
    }

    int rabbits = (legs - 2*heads) / 2;
    int chickens = heads - rabbits;

    printf("雞: %d 隻, 兔: %d 隻\n", chickens, rabbits);
    return 0;
}

關鍵驗證邏輯

  • legs % 2 != 0:腳數必為偶數 (雞 2、兔 4)。
  • legs < 2*heads:即使全是雞腳數也不夠。
  • legs > 4*heads:即使全是兔腳數也超標。
  • 結果 chickens >= 0 && rabbits >= 0 自動滿足上述條件。

擴展:多種動物 / 矩陣求解


// 一般線性方程組 Ax = b,高斯消元法求解
// 適用於「雞兔蛇鷹」等多變量問題
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved