打印本文 打印本文  关闭窗口 关闭窗口  
C趣味编程百例(12)马克思手稿中的数学题
作者:佚名  文章来源:不详  点击数  更新时间:2008/4/18 13:59:24  文章录入:杜斌  责任编辑:杜斌

41.马克思手稿中的数学题
    马克思手稿中有一道趣味数学问题:有30个人,其中有男人、女人和小孩,在一家饭馆吃饭花了50先令;每个男人花3先令,每个女人花2先令,每个小孩花1先令;问男人、女人和小孩各有几人?
*题目分析与算法设计
    设x,y,z分别代表男人、女人和小孩。按题目的要求,可得到下面的方程:
                   x+y+z=30            (1)
                   3x+2y+z=50          (2)
    用方程程序求此不定方程的非负整数解,可先通过(2)-(1)式得:
                   2x+y=20             (3)
由(3)式可知,x变化范围是0~10
*程序说明与注释
#include<stdio.h>
void main()
{
    int x,y,z,count=0;
    printf("            Men           Women            Children\n");
    printf("........................................\n");
    for(x=0;x<=10;x++)
    {
        y=20-2*x;                     /*x定值据(3)式求y*/
        z=30-x-y;                     /*由(1)式求z*/
        if(3*x+2*y+z==50)             /*当前得到的一组解是否满足式(2)*/
            printf(" %2d:         %d         %d         %d\n",++count,x,y,z);
    }
}
*运行结果

 
打印本文 打印本文  关闭窗口 关闭窗口