type ps = record t,m:longint; end; var n,i,d:longint; a,p:array[1..1000000] of ps; dau:array[1..100000] of char; function gcd(a,b:int64):int64; var t:longint; begin while b>0 do begin t:=a mod b; a:=b; b:=t; end; exit(a); end; function toigian(a:ps):ps; var ucln:longint; begin ucln:=gcd(a.t,a.m); a.t:=a.t div ucln; a.m:=a.m div ucln; if a.m<0 then begin a.t:=-a.t; a.m:=-a.m; end; exit(a); end; function cong(a,b:ps):ps; var ucln:longint; c:ps; begin ucln:=gcd(a.m,b.m); c.m:=(a.m*b.m) div ucln; c.t:=a.t*(c.m div a.m)+b.t*(c.m div b.m); exit(c); end; function nhan(a,b:ps):ps; var c:ps; begin c.m:=a.m*b.m; c.t:=a.t*b.t; exit(c); end; procedure tien_xu_li; begin a[1]:=p[1];d:=1; for i:=1 to n-1 do begin if dau[i]='+' then begin inc(d); a[d]:=p[i+1]; end; if dau[i]='-' then begin p[i+1].t:=-p[i+1].t; inc(d); a[d]:=p[i+1]; end; if dau[i]='*' then a[d]:=nhan(a[d],p[i+1]); end; end; procedure tinh; var res:ps; begin res:=a[1]; for i:=2 to d do res:=cong(res,a[i]); res:=toigian(res); write(res.t, ' ',res.m); end; procedure nhap; begin readln(n); for i:=1 to n do readln(p[i].t,p[i].m); for i:=1 to n-1 do readln(dau[i]); end; begin assign(input,'bieuthuc1235.inp');reset(input); assign(output,'bieuthuc1235.out');rewrite(output); nhap; tien_xu_li; tinh; end.
* Chuyên dạy lập trình ONLINE cho học sinh THCS, THPT *.
Mọi giao lưu, trao đổi, xin liên hệ: Lê Quang Vinh - zalo: 037.803.8755.
Page: Lớp học Code Sky
Group FB1: Ôn thi HSG9 - THTB - TS10 chuyên tin
Group FB2: Học Scratch - Ôn thi Tin học trẻ bảng A
Thứ Sáu, 13 tháng 5, 2022
BIEUTHUC1235 Pascal
Đăng ký:
Đăng Nhận xét (Atom)
Không có nhận xét nào:
Đăng nhận xét
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.