永发信息网

最接近的分数 pascal

答案:1  悬赏:0  手机版
解决时间 2021-11-23 01:30
  • 提问者网友:城市野鹿
  • 2021-11-22 18:03
最接近的分数 pascal
最佳答案
  • 五星知识达人网友:鱼芗
  • 2021-11-22 19:20
var
   m,n:longint;
   r,x,y:double;
   a:array[1..2000] of double;
   mm,nn:array[1..2000] of integer;
   i,k,min:integer;

function gcd(a,b:integer):integer;
begin
  if b=0 then gcd:=a
    else gcd:=gcd(b,a mod b);
end ;

begin
     readln(m,n);
     readln(r);
     k:=1;
     y:=m/n-r;
     repeat
           mm[k]:=m;
           nn[k]:=n;
           x:=m/n-r;
           a[k]:=abs(x);
           inc(k);
           if x>0 then dec(m) else dec(n);
     until abs(x)>abs(y);
     min:=1;
     for i:=2 to k-1 do if a[min]>a[i] then min:=i;
     writeln;
     i:=gcd(mm[min],nn[min]);
     writeln(mm[min] div i:0,'/',nn[min] div i:0);
     readln;
end.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯