假定頭的數量為A, 腳的數量為B。
壹、暴力求解:
//枚舉雞的數量
int flag = 0;
for(i = 0; i <= A; i++) {
j = A - i;
if (i * 2 + j * 4 == B) {
flag = 1;
printf("ans is: %d, %d\n", i, j);
break;
}
}
if (flag == 0) {
puts("No answer!");
}
二、建立數學模型求解
雞兔同籠問題是個二元壹次方程組問題。
X + Y = A
2X + 4Y = B
X = (4A - B) / 2
Y = (B - 2A) / 2
轉換成代碼:
if ( (4 * A - B) % 2 == 0 && (B - 2 * A) % 2 == 0) {
printf("ans is: %d, %d\n", (4 * A - B) / 2 , (B - 2 * A) / 2);
} else {
puts("No answer!");
}