`
wangzuojia
  • 浏览: 1597 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

鸡兔同笼

阅读更多
#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)这条语句是为了确定笼子中只有鸡的情况不会出现错误,这样就能很好控制了,现在明白多了吧!其实每个算法都有一个数学的内容的,我要继续努力了!希望你们能看明白,文采不好!
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics