百钱百鸡

141 阅读1分钟

题目:公鸡五钱一只,母鸡三钱一只,小鸡一钱三只,100钱买100只鸡,则公鸡、母鸡、小鸡各多少只?

1、题目分析

如果用100钱只买一种鸡,那么,公鸡最多买20只,母鸡最多买33只,小鸡最多买300只。但要求买100只鸡,所以小鸡的数量为0--100,公鸡的数量为0--20,母鸡的数量为0--33。如果把公鸡、母鸡和小鸡的数量分别设为cock、hen、chick,通过上述分析可得出以下结论:

(1) 0<=cock<=20

(2) 0<=hen<=33

(3) 0<=chick<=100

(4) cock+hen+chick=100

(5) 5×cock+3×hen+chick÷3=100

由于公鸡、母鸡和小鸡的数量相互限制,所以可以使用 3 层循环嵌套来解决此问题。案例设计具体如下。

(1) 定义 3 个整型变量cock、hen、chick,分别表示公鸡、母鸡和小鸡的数量。

(2) 第一层for语句控制公鸡的数量,第二层for语句控制母鸡的数量,第三层for语句控制小鸡的数量。

(3) 在3层for语句中,cock、hen和chick需要满足以下两个条件:

  • cock+hen+chick=100

  • 5×cock+3×hen+chick÷3=100

2、完整代码
#include <stdio.h>
int main(){ 
    int cock, hen, chick; 
    for (cock = 0; cock <= 20; cock++) 
        for (hen = 0; hen <= 33; hen++) 
            for (chick = 0; chick <= 100; chick++){ 
                if ((5 * cock + 3 * hen + chick / 3.0 == 100) &&
                    (cock + hen + chick == 100))
                     printf("公鸡=%2d,母鸡=%2d,小鸡=%2d\n", cock, hen, chick); 
                     }       
     return 0;
}

运行结果如下:

image.png