Отримання знань
дистанційна підтримка освіти школярів
Тут ви можете виконати завдання чи задати питання по змiсту цього уроку.
Михальов Володимир (StarRover) 2013-11-18 10:41:59
{MultiLong} Const Nmax=2000; Type Digit=0..9; Tlong=Array[1..Nmax] of Digit; var a,b,c:Tlong; s:string; logic:boolean; Procedure ReadLong(s:string; var A:Tlong; var OK:boolean); var i:integer; begin FillChar(A,SizeOf(A),0); i:=Length(S); OK:=True; while (i>=1)and OK do begin if s[i] in ['0'..'9'] then A[Length(S)-i+1]:=Ord(s[i])-48 else OK:=False; i:=i-1; end; end; Function LengthLong(A:TLong):integer; var i:integer; begin i:=Nmax; while (i>1)and(A[i]=0) do i:=i-1; LengthLong:=i; end; Procedure Mult(A,B:Tlong;var C:Tlong); var i,j:integer; p:Digit; t:0..99; begin FillChar(C,SizeOf(C),0); for i:=1 to LengthLong(A) do begin p:=0; for j:=1 to LengthLong(B) do begin t:=A[i]*B[j]+p+C[i+j-1]; C[i+j-1]:=t mod 10; p:=t div 10; end; C[i+j]:=p; end; end; Procedure WriteLong(A:Tlong); var i:integer; begin for i:=LengthLong(A) downto 1 do Write(A[i]); WriteLn; end; begin repeat ReadLn(s); ReadLong(s,a,logic); until logic; repeat ReadLn(s); ReadLong(s,b,logic); until logic; Mult(a,b,c); WriteLong(c); end. |
В системі:
гості - (1); користувачі -
(0)