想用c语言解答鸡兔同笼,怎么做?
2个回答
展开全部
鸡兔同笼问题,归根结底是一个数学问题。用C语言处理数学问题,无外乎两种方式。
假定头的数量为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!");
}
假定头的数量为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!");
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询