設雞 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,高斯消元法求解
// 適用於「雞兔蛇鷹」等多變量問題