伟大的马克思的手稿中有这样一道有趣的数学题:有30个人,其中有男人,女人,小孩。他们在一家饭馆中吃饭,共花费50先令。如果每个男人吃饭要花3先令,每个女人要花2先令,每个小孩要花1先令,问男人,女人,小孩各多少人?
我们遇到这种问题,一般都是采用穷举法进行操作,我们可以假设男人有x人,女人有y人,小孩有z人。我们很快可以列出如下的数学式子:
3x+2y+z = 50; x+y+z = 30;
通过三重循环,找出合适的答案,编写代码如下:
- #include <stdio.h>
-
-
void marx()
-
{
-
int x,y,z;
-
for(x=1; x<30; x++)
-
for(y=1; y<30; y++)
-
for(z=1; z<30; z++)
-
if(3*x+2*y+z == 50 && x+y+z == 30)
-
printf("%5d %5d %5d\n",x,y,z);
-
}
-
-
int main(int argc, char *argv[])
-
{
-
printf("the solution of marx's topic\n");
-
printf("man woman children\n");
-
marx();
-
return 0;
-
}
程序执行结果如下:
peng@ubuntu:~/src/test/c/suanfa/miaoqu$ gcc 6.10.c
peng@ubuntu:~/src/test/c/suanfa/miaoqu$ ./a.out
the solution of marx's topic
man woman children
1 18 11
2 16 12
3 14 13
4 12 14
5 10 15
6 8 16
7 6 17
8 4 18
9 2 19
阅读(7137) | 评论(2) | 转发(0) |