马克思手稿中有一道趣味数学问题:有30个人,其中有男人、女人和小孩,在一家饭馆吃饭花了50先令;每个男人花3先令,每个女人花2先令,每个小孩花1先令;问男人、女人和小孩各有几人?
, F( m8 g; H8 c* a) v *问题分析与算法设计
: R n/ k O d% ?2 B 设x,y,z分别代表男人、女人和小孩。按题目的要求,可得到下面的方程:
. E4 z- K( R* K: m" a2 { x+y+z=30 (1)/ c: y( y' h* m1 C
3x+2y+z=50 (2)
/ L9 ^' {) X% T 用方程程序求此不定方程的非负整数解,可先通过(2)-(1)式得:% R8 ~ r8 N& f% V& k1 X9 R. I. \
2x+y=20 (3)+ A4 q* M5 Y# D G& ~' w
由(3)式可知,x变化范围是0~10% O! Q3 g! N" x* j: ?* ]' X8 N
*程序说明与注释
6 [0 Y$ c! P) d/ ?& q/ ~: c #include
5 b% q6 ^6 \' Y' @. u& D Z) Y int main()7 P1 O' m% F% G# l9 m9 t7 s
{
) I9 k1 ?' w& W3 q7 t int x,y,z,count=0;9 a% B" ?6 S0 R# Y
printf(" Men Women Children\n");
. q+ {, i$ T& i/ s S$ n2 B* V8 p printf("........................................\n");* _/ r3 I+ I1 ?2 _4 q$ d$ v
for(x=0;x |