KHÁM PHÁ Học Toán + Tiếng Anh theo Sách Giáo Khoa cùng học online và gia sư dạy kèm tại nhà từ lớp 1 đến lớp 12 với giá cực kỳ ưu đãi kèm quà tặng độc quyền"CỰC HOT".
mn ơi giúp mình với viết giúp mình code hàm tính tích 2 số lớn với ạ
By Ivy
mn ơi giúp mình với viết giúp mình code hàm tính tích 2 số lớn với ạ
Function add(a,b: bignum): bignum; Var sum,carry,i: longint; c: bignum; Begin carry:=0; c:=”; While length(a)<length(b) do a:=’0’+a; While length(b)<length(a) do b:=’0’+b; For i:=length(a) downto 1 do Begin sum:=Ord(A[i])-48 + Ord(B[i])-48 + carry; carry:=sum div 10; c:=chr(sum mod 10+ 48) + c; End; If carry>0 then c:=’1’+c; add:=c; End;
Function multiply1(a: bignum; b: longint): bignum; Var i: longint; carry,s: longint; c,tmp: bignum; Begin c:=”; carry:=0; For i:=length(a) downto 1 do Begin s:=(Ord(A[i])-48)*b + carry; carry:=s div 10; c:=chr(s mod 10+48)+c; End; If carry>0 then Str(carry,tmp) else tmp:=”; multiply1:=tmp+c; End;
Function multiply2(a,b: bignum): bignum; Var sum,tmp: bignum; m,i,j: longint; Begin m:=-1; sum:=”; For i:=length(a) downto 1 do Begin m:=m+1; tmp:=multiply1(b,Ord(A[i])-48); For j:=1 to m do tmp:=tmp+’0′; sum:=add(tmp,sum); End; multiply2:=sum; End;
Function add(a,b: bignum): bignum;
Var sum,carry,i: longint;
c: bignum;
Begin
carry:=0; c:=”;
While length(a)<length(b) do a:=’0’+a;
While length(b)<length(a) do b:=’0’+b;
For i:=length(a) downto 1 do
Begin
sum:=Ord(A[i])-48 + Ord(B[i])-48 + carry;
carry:=sum div 10;
c:=chr(sum mod 10+ 48) + c;
End;
If carry>0 then c:=’1’+c;
add:=c;
End;
Function multiply1(a: bignum; b: longint): bignum;
Var i: longint;
carry,s: longint;
c,tmp: bignum;
Begin
c:=”;
carry:=0;
For i:=length(a) downto 1 do
Begin
s:=(Ord(A[i])-48)*b + carry;
carry:=s div 10;
c:=chr(s mod 10+48)+c;
End;
If carry>0 then Str(carry,tmp) else tmp:=”;
multiply1:=tmp+c;
End;
Function multiply2(a,b: bignum): bignum;
Var sum,tmp: bignum;
m,i,j: longint;
Begin
m:=-1;
sum:=”;
For i:=length(a) downto 1 do
Begin
m:=m+1;
tmp:=multiply1(b,Ord(A[i])-48);
For j:=1 to m do tmp:=tmp+’0′;
sum:=add(tmp,sum);
End;
multiply2:=sum;
End;