最接近的分数 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.
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.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯