回 帖 发 新 帖 刷新版面

主题:如何实现4个数求最小公倍数?+30

谢谢了,
我的邮箱:hemingxin@gmail.com
希望能和PASCAL的朋友们做朋友

回复列表 (共7个回复)

沙发

就先求前两个的公倍数,再求后两个的公倍数,最后求两个公倍数的公倍数,有点罗嗦,但这是最好的方法
程序如下
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.

板凳

我试过了,可以的
我用的是FP的

3 楼

谢谢你,你今天帮了我2回了,你能把你的邮箱地址告诉我么

4 楼

lmj9201@163.com
互相帮忙是应该的
你今天也给我加了100分整了
谢了

5 楼


我也用fp试过了,可以

6 楼

我是个新手

这里没有讲输入什么东西
我要怎么输入啊
我输入了4个数
可运行之后就直接关了?
[em18]

7 楼

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.

我来回复

您尚未登录,请登录后再回复。点此登录或注册