viết chương trình nhập vào từ bàn phím 4 số nguyên a,b,c,d khác 0 xuất ra màn hình là m/n với phân số m/n là phân số tối giản của phép cộng a/b+c/d
2 câu trả lời
Const Fi='CONGPHANSO.INP';
Fo='CONGPHANSO.OUT';
Var f,g: text;
a,b,c,d,mau,tu,ps: int64;
Function UCLN(a,b: longint): longint;
Begin
While a<>b do
Begin
If a>b then a:=a-b
Else
If b>a then b:=b-a;
End;
UCLN:=a;
End;
Begin
Assign(f,Fi); Reset(f);
Assign(g,Fo); Rewrite(g);
Read(f,a,b,c,d);
If (b=0) or (d=0) then Write(g,'Mau bang 0')
Else
Begin
Writeln(g,'Hai phan so vua nhap la: ',a,'/',b,' , ',c,'/',d);
If b=d then Writeln(g,'Tong hai phan so la: ',a+c,'/',b)
Else
Begin
tu:=a*d+b*c;
mau:=b*d;
Writeln(g,'Tong hai phan so la: ',tu,'/',mau);
End;
ps:=UCLN(tu,mau);
tu:=tu div UCLN(tu,mau);
mau:=mau div ps;
Writeln(g,'TỔNG PHÂN SỐ RÚT GỌN : ',tu,'/',mau);
End;
Close(f);
Close(g);
End.
cho mình câu trả lời hay nhất nhé !!!
uses crt;
var a,b,c,d,tu,mau:longint;
function uoc(m,n:longint):longint;
var r:longint;
begin
r:=0;
while n<>0 do
begin
r:=m mod n;
m:=n;
n:=r;
end;
uoc:=m;
end;
begin
read(a,b,c,d);
if (a=0) or (b=0) or (c=0) or (d=0) then exit
else begin
tu:=(a*d+b*c) div uoc((a*d+b*c),b*d);
mau:=(b*d) div uoc((a*d+b*c),b*d);
end;
write(tu,'/',mau);
readln; readln;
end.