马克思手稿中的数学题

发布时间 2023-05-04 15:55:47作者: 为20岁努力

马克思手稿中有一道趣味数学问题:有30个人,其中有男人、女人和小孩,他们在同一家饭馆吃饭,总共花了50先令。已知每个男人吃饭需要花3先令,每个女人吃饭需要花2先令,每个小孩吃饭需要花1先令,请编程求出男人、女人和小孩各有几人?

由题意可知这是一个三元一次方程组问题,通过人数和花费的钱列出两个方程,我们可以通过for循环对一个未知数进行穷举,再根据方程组条件求出剩余两个未知数的值。

 

#include<iostream>
using namespace std;
int main()
{
int men,women,children,number=0;//men,women,children表示男人、女人、小孩对应的人数
cout<<"\t"<<"男人"<<"\t"<<"女人"<<"\t"<<"小孩"<<endl;
for(int men=0;men<=10;men++)
{
women=20-2*men;//通过方程组相减得出的关于女人数量的表达式
children=30-men-women;//人的总数为30人
if(3*men+2*women+children==50)//一共花了50先令
{
cout<<++number<<"\t"<<men<<"\t"<<women<<"\t"<<children<<endl;
}
}
return 0;
}

运行结果如下: