编程解决马克思手稿中的趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、女人和小孩各有几人?

编程解决马克思手稿中的趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、女人和小孩各有几人?
如果以数学的函数思想来解决,用x表示男人,y表示女人,z表示小孩,列出下列方程式:
在这里插入图片描述
由最后一个方程式可知x最大为10.
将上述方程用程序实现,代码如下:

#include<stdio.h>

int main()
{
    
    
	int x,y,z;
	int i=0;
	printf("     man    woman   children\n");
	for(x=0;x<=10;x++)
	{
    
    
		y=20-2*x;
		z=30-x-y;
		if(3*x+2*y+z==50)
	{
    
    
		printf("第%d: %d%8d%8d\n",++i,x,y,z);
	}
	}
	return 0;
}

运行结果如图所示:
在这里插入图片描述
又来更正代码啦,题目中说的是有30个人,其中有男人、女人、小孩,说明x,y.z都不能为0.
更正代码如下:

#include<stdio.h>

int main()
{
    
    
	int x=1;
	int y,z;
	int i=0;
	printf("     man    woman   children\n");
	for(x=1;x<=10;x++)
	{
    
    
		y=20-2*x;
		z=30-x-y;
		if(y!=0&&z!=0)
		{
    
    
			if(3*x+2*y+z==50)
	{
    
    
		printf("第%d: %d%8d%8d\n",++i,x,y,z);
	}
		}
	}
	return 0;
}

运行截图如下:
在这里插入图片描述

菜菜的代码,希望能够帮助到你哟!

猜你喜欢

转载自blog.csdn.net/Sconnie/article/details/113918138