pascal问题
大约在公元5世纪,数学家张邱建在他的《算经》中提出了一个文明于后世的百钱百鸡问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,翁,母,雏各几何?意识就是一...
大约在公元5世纪,数学家张邱建在他的《算经》中提出了一个文明于后世的百钱百鸡问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,翁,母,雏各几何?意识就是一只公鸡5钱,一只母鸡3钱,三只小鸡一钱,有一百钱的情况下买了一百只鸡,每种鸡各有几只?(假设每种至少有一只)
展开
1个回答
展开全部
首先,这是一道初学pascal很常见的题,如果用一般解法进行枚举,很容易能写出下面代码:
(一只公鸡5钱,则最多有19只公鸡;一只母鸡3钱,则最多有33只母鸡;因此令 i 和 j 分别从1~19,1~33循环)
var i,j,k:integer;
begin
for i:=1 to 19 do
for j:=1 to 33 do
begin
k:=100-i-j; //k存的是小鸡的只数;
if k mod 3<>0 then continue;
if 5*i+3*j+k div 3=100 then
writeln(i:5,j:5,k:5);
end;
end.
但是如果多想一下,还能做得更好!
注意,由于x、y、z都是整数,因此上面x的范围我也取了整数,本身是有分数的。
代码写出来是这样:
var x:integer;
begin
for x:=26 to 28 do
writeln(4*x-100:5,200-7*x:5,3*x:5);
end.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询