题目:公鸡五钱一只,母鸡三钱一只,小鸡一钱三只,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;
}
运行结果如下: