编程解决马克思手稿中的趣味数学题:有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;
}
运行截图如下:
菜菜的代码,希望能够帮助到你哟!