有一所学校有三门课程数学、物理、化学,修数学150人,物理120人,化学100人,同时修数学和物理有21人,数学和化学有16人,物理和化学8人,三科同修有5人,问:这所学校一共有几人?
【顺便帮忙讲解一下关于这类题应怎么做?】谢谢
有一所学校有三门课程数学、物理、化学,修数学150人,物理120人,化学100人,同时修数学和物理有21人,数学和化学有16人,物理和化学8人,三科同修有5人,问:这所学校一共有几人?
【顺便帮忙讲解一下关于这类题应怎么做?】谢谢
你好,Minimum为你回答此问题.
1l的方法我简直不想评论了,完全是在做数学题,而且还做错了....要把计算机的精华体现出来,我给你讲细一点....
1.设一个变量x,为总人数...
2.用x将只学一门,只学2门,只学3们的分别表示出来,那么就可以得到 (x-45-5) {一门}; (45) {两门} ; (5) 三门
3..然后找出关系式,因为已知一共有(150+120+100)个课程时,那么就可以找到 (一门的人数)*1+(2门的人数)*2+(3门的人数)*3=全部课程时 这个关系式。。。
4. 我们可以选择枚举的方法,枚举的范围是 100至320....这对计算机来说是非常小的一个数...
主程序为下
program aa;
var
x:integer;
begin
for x:=100 to 320 do
if (x-45-5)*1+(45)*2+(5)*3=150+120+100 then {我们分析出的关系式,为节省计算速度,你可以化简}
writeln('the number is ',x);
readln;
end.
program aa;
var qxr,a,b,c,d,e,f,g:integer;
begin
read(a,b,c,d,e,f,g);{输入人数}
qxr:=a+b+c-2*d-2*e-2*f+g;{套公式}
writeln('qxr='qxr);{输出}
readln;{显示}
end.