C语言 | 百鸡百钱问题 | 案例

29 阅读1分钟

[提问]:数学上怎么求?

image.png

[思路]:暴力破解

1. 列出公鸡,母鸡,小鸡的所有组合数量;

2. 计算这些组合是否符合100钱的要求。

[步骤,边讲边写代码演示]

1.通过两层for循环,列出所有组合。这儿有两个变量:公鸡数量,母鸡数量;小鸡数量用100减出即可。

2.判断是否满足100钱

3.判断小鸡数是否是3的整数倍。

#include <stdio.h>
int main(){
	for(int gj = 0; gj<= 20;gj++){
		for(int mj =0;mj<=33;mj++){
			int xj = 100-gj-mj;
			if(5*gj+3*mj+xj/3==100&&xj%3==0){
				printf("(%d,%d,%d)\n",gj,mj,xj);
			}
		}
	}
	return 0;
} 

image.png