问题:
马克思手稿中有一道趣味数学问题:有30个人,其中有男人、女人和小孩,他们在同一家饭馆吃饭,总共花了50先令。已知每个男人吃饭需要花3先令,每个女人吃饭需要花2先令,每个小孩吃饭需要花1先令,请编程求出男人、女人和小孩各有几人。
分析:根据该问题的描述,可将该问题抽象为一个不定方程组。 设变量x、y和z分别代表男人、女人和小孩,则由题目的要求,可得到如下的方程组: 其中方程 (1) 表示男人、女人和小孩加起来总共有30个人。方程 (2) 表示30个人吃饭总共花了50先令。用 (2) - (1),可得:
2x+y=20 (3)
由方程 (3) 可知,x取值范围为 [0,10]。
算法设计:在问题分析中我们抽象出了一个不定方程组,显然得到了不定方程组的解,该问题也就解决了。但不定方程组中包含了 x、y、z 这3个变量,而方程只有两个,因此不能直接求出x、y、z的值。 而由方程 (3),我们得到了x的取值范围,因此可将x的有效取值依次代入不定方程组中(即方程 (1)、(2) 和 (3))中,能使3个方程同时成立的解即为该问题的解。为实现该功能,只需使用一个for循环语句即可。 下面是完整的代码:
- #include
- int main()
- {
- int x, y, z, number=0;
- printf(" Men Women Children\n");
- for( x=0; x
关注打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?