想用c语言解答鸡兔同笼,怎么做?

 我来答
liruih8121099
游戏玩家

2020-06-04 · 游戏我都懂点儿,问我就对了
知道小有建树答主
回答量:561
采纳率:75%
帮助的人:169万
展开全部
鸡兔同笼问题,归根结底是一个数学问题。用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!");
}
听不清啊
高粉答主

2020-06-04 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

代码和运行实况见图:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式