主题:如何实现4个数求最小公倍数?+30
hmx0979
[专家分:160] 发布于 2006-02-15 22:06:00
谢谢了,
我的邮箱:hemingxin@gmail.com
希望能和PASCAL的朋友们做朋友
回复列表 (共7个回复)
沙发
lmj9201 [专家分:1400] 发布于 2006-02-15 22:43:00
就先求前两个的公倍数,再求后两个的公倍数,最后求两个公倍数的公倍数,有点罗嗦,但这是最好的方法
程序如下
var
a:array[1..7]of integer;
j:integer;
function gbs(x,y:integer):integer;
var
i,gys:integer;
begin
for i:=x downto 1 do
if (x mod i=0)and(y mod i=0)
then begin
gys:=i;
break;
end;
gbs:=round(x*y/gys);
end;
begin
for j:=1 to 4do
read(a[j]);
a[5]:=gbs(a[1],a[2]);
a[6]:=gbs(a[3],a[4]);
a[7]:=gbs(a[5],a[6]);
write(a[7]);
end.
板凳
lmj9201 [专家分:1400] 发布于 2006-02-15 22:46:00
我试过了,可以的
我用的是FP的
3 楼
hmx0979 [专家分:160] 发布于 2006-02-15 23:07:00
谢谢你,你今天帮了我2回了,你能把你的邮箱地址告诉我么
4 楼
lmj9201 [专家分:1400] 发布于 2006-02-16 13:27:00
lmj9201@163.com
互相帮忙是应该的
你今天也给我加了100分整了
谢了
5 楼
lnx199495 [专家分:0] 发布于 2006-02-17 21:58:00
我也用fp试过了,可以
6 楼
sd1815405 [专家分:0] 发布于 2006-02-19 14:16:00
我是个新手
这里没有讲输入什么东西
我要怎么输入啊
我输入了4个数
可运行之后就直接关了?
[em18]
7 楼
实验小学 [专家分:30] 发布于 2006-04-02 11:31:00
var
a,b,c,d,i,h:integer;
begin
write('a,b,c,d=');
readln(a,b,c,d);
i:=1;
repeat
inc(i);
if (a mod i=0) and (b mod i=0) and (c mod i=0) and (d mod i=0) then h:=1;
until (h=1) or (i=a) or (i=b) or (i=c) or (i=d);
if h=1 then writeln(i)
else writeln('wu');
end.
我来回复