马克思数学手稿问题

问题描述:

马克思手稿中有一道趣味数学问题:有30个人,其中有男人、女人和小孩,在一家饭馆吃饭共花了50先令;每个男人花3先令,每个女人花2先令,每个小孩花1先令;问男人、女人和小孩各有几人?编程,输出全部可能的答案。

解题思路:

设有x个男人,y个女人,则小孩有(30-x-y)人,x、y为正整数
依题意有:
3x+2y+(30-x-y)=50
===> 2x+y=20
===> y=20-2x
①当x=1时,y=18,30-x-y=11
②当x=2时,y=16,30-x-y=12
③当x=3时,y=14,30-x-y=13
④当x=4时,y=12,30-x-y=14
⑤当x=5时,y=10,30-x-y=15
⑥当x=6时,y=8,30-x-y=16
⑦当x=7时,y=6,30-x-y=17
⑧当x=8时,y=4,30-x-y=18
⑨当x=9时,y=2,30-x-y=19
⑩当x≥10时,y≤0,不符合题意。


#include 
int main()
{
	int money = 50, count = 30;
	int i, j, k;
	printf("They consist of:\n");
	for (i = 1; i <= count; i++)
		for (j = 1; j <= count; j++)
			for (k = 1; k <= count; k++)
				if (i + j + k == count && 3 * i + 2 * j + k == money)
				{
					printf("man=%2d woman=%2d child=%2d\n", i, j, k);
				}
	return 0;
}


你可能感兴趣的:(编程基础)