Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program MultiplicationOfLongNumbers;
- {$H+}
- const
- leng = 100000;
- ileng = 200000;
- var
- mul: array[1..leng] of byte;
- intermediate: array[1..ileng] of byte;
- factor: array of byte;
- index, k, mulindex: integer;
- number: string;
- now: boolean;
- t: text;
- begin
- assign(t, 'input.txt');
- reset(t);
- for index := 1 to leng do mul[index] := 0;
- for index := 1 to ileng do intermediate[index] := 0;
- readln(t, number);
- for index := 1 to length(number) do
- mul[length(number) + 1 - index] := ord(number[index]) - 48;
- readln(t, number);
- SetLength(factor, length(number));
- for index := 0 to length(number) - 1 do
- factor[length(number) - 1 - index] := ord(number[index + 1]) - 48;
- k := 0;
- for index := 0 to length(number) - 1 do
- begin
- for mulindex := 1 to leng do
- begin
- intermediate[mulindex + k] += factor[index] * mul[mulindex];
- if intermediate[mulindex + k] >= 10 then
- begin
- intermediate[mulindex + k + 1] += intermediate[mulindex + k] div 10;
- intermediate[mulindex + k] := intermediate[mulindex + k] mod 10;
- end;
- end;
- inc(k);
- end;
- close(t);
- assign(t, 'output.txt');
- rewrite(t);
- now := false;
- for index := ileng downto 1 do
- begin
- if intermediate[index] <> 0 then now := true;
- if now then write(t, intermediate[index]);
- end;
- if not now then write(t, '0');
- close(t);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement