Даны два длинных целых числа (256+) требуется сложить эти числа - Pascal ABC

Формулировка задачи:

Даны два длинных целых числа (256+ символов) требуется сложить эти числа,и подсчитать что получилось

Код к задаче: «Даны два длинных целых числа (256+) требуется сложить эти числа - Pascal ABC»

textual
var a,b,c:array[1..10000] of byte;
    na,nb,i,j,n,p:integer;
begin
randomize;
write('Количество знаков числа A na=');
readln(na);
write('Количество знаков числа B nb=');
readln(nb);
writeln('Число A:');
a[1]:=random(9)+1;
for i:=2 to na do
a[i]:=random(10);
for i:=1 to na do
write(a[i]);
writeln;
writeln('Число B:');
b[1]:=random(9)+1;
for i:=2 to nb do
b[i]:=random(10);
for i:=1 to nb do
write(b[i]);
writeln;
if na>nb then
  begin
    n:=na;
    for i:=1 to na-nb do
      begin
        nb:=nb+1;
        for j:=nb downto 2 do
        b[j]:=b[j-1];
        b[1]:=0;
      end;
   end
else if nb>na then
   begin
     n:=nb;
     for i:=1 to nb-na do
       begin
         na:=na+1;
         for j:=na downto 2 do
         a[j]:=a[j-1];
         a[1]:=0;
       end;
    end
else if nb=na then n:=na;
p:=0;
for i:=n downto 1 do
  begin
   c[i]:=a[i]+b[i]+p;
   if (c[i]>9)and(i>1) then
      begin
       c[i]:=c[i] mod 10;
       p:=1;
      end
    else p:=0;
  end;
if c[1]>9 then
  begin
    c[1]:=c[1] mod 10;
    n:=n+1;
    for j:=n downto 2 do
    c[j]:=c[j-1];
    c[1]:=1;
  end;
writeln('Число C:');
for i:=1 to n do
write(c[i]);
end.

10   голосов, оценка 4.400 из 5


СОХРАНИТЬ ССЫЛКУ