鸡兔同笼

[code="java"][/code]#include<stdio.h>
int main()
{
int i,m,n,a;
scanf("%d",&a);
while(a--)
{
scanf("%d%d",&n,&m);
for(i=0;i<=m/2;i++)
if(2*i+4*(n-i)==m)
break;
if(i<=m/2)
printf("%d %d\n",i,n-i);
else
printf("No answer\n");
}
return 0;
}

程序是别人的,我只是拿来学习一下,我只是给新手解释,老手勿喷……嘿嘿


这个是鸡兔同笼的问题,我现在就来讲解一下每行代码的意义:

前面的也就不说了,直接说为什么for循环的时候运行的时候会有这样的结果,其实也很简单的,我们只要用数学方法算一下就知道了,直到 i=12的时候才会执行下条语句,这样的话就能求出鸡的数量了,现在明白了吧! 在算出鸡的数量的时候就会跳出循环了,其实也不是很难的,只要自己写代码的时候加上大括号就很明白的,if(i<=m/2)这条语句是为了确定笼子中只有鸡的情况不会出现错误,这样就能很好控制了,现在明白多了吧!其实每个算法都有一个数学的内容的,我要继续努力了!希望你们能看明白,文采不好!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值