今天看c语言,看到一道编程,百钱百鸡,但给出了三种解决办法。题目具体如下:
公鸡五元一只,母鸡三元一只,小鸡一元三只。100元买一百只鸡,能各买公鸡母鸡小鸡多少只?
前面两种第一种有三重for循环,第二种有两重,基本上是一般人都会用的方法,x,y,z分别是鸡的数量,下面是第二种方法,比第一重少了z变量的循环
for(x=0;x<=20;x++)
{
for(y=0;y<=33;y++)
{
z=100-x-y;
}
}
再列一下第三种吧,只有一重循环,说实话我看的第一眼是有点蒙的,没想到这么简单的程序还能写成这样,主要跟我一般写程序能写出来就行有关,感觉自己功力是真的低,虽然上面的写法挺好的了。
for(x=0;x<=12;x+=4)
{
y=25-(x/4)*7;
z=100-x-y;
printf(.....);
}
就这样了,x+y+z=100;5x+3y+z/3=100;两个式子化简一下就可以得到x能被四整除且y大于0,x小于等于12;