Часто бывает, когда нужно сложить два числа, которые слишком велики для стандартных типов переменных в языках программирования. Тогда на помощь приходят алгоритмы из так называемой «длинной арифметики»
Ниже подан алгоритм сложения двух длинных чисел.
Числа для сложения находятся в файле «Input.txt»
Материал взят тут
var s1, s2: string; a, b: array[1..100] of integer;//количество цифр в числе len, i, c: integer; f1, f2: text; begin Assign(f1, 'INPUT.TXT'); Reset(f1); Assign(f2, 'OUTPUT.TXT'); ReWrite(f2); c := 0; ReadLn(f1, s1); ReadLn(f1, s2); close(f1); len := length(s1); {разбиение строк в элементы массивов} for i := 1 to len do a[len - i + 1] := Ord(s1[i]) - 48; len := length(s2); for i := 1 to len do b[len - i + 1] := Ord(s2[i]) - 48; if length(s1) > length(s2) then len := length(s1) else len := length(s2); for i := 1 to len do begin c := c + a[i] + b[i]; {переменная c будет в дальнейшем использоваться для переноса числа в следующия ряд} a[i] := c mod 10; {результат сложения запишем в массив а} c := c div 10; end; if c > 0 then begin len := len + 1; a[len] := c; end; for i := len downto 1 do {вывод результата в файл} Write(f2, a[i]); close(f2); end.