Программа на паскале, складывающая супер большие числа (при строк)

Qwerty1246 Qwerty1246    1   13.07.2019 19:20    0

Ответы
Finneas Finneas  20.09.2020 07:55
А еще можно без головной боли

// PascalABC.NET 3.0, сборка 1111
var
  a,b:BigInteger;
  sa,sb:string;
begin
  Write('Первое слагаемое: '); Readln(sa);
  if BigInteger.TryParse(sa,a)=False then Writeln('Это не целое число!')
  else begin
    Write('Второе слагаемое: '); Readln(sb);
    if BigInteger.TryParse(sb,b)=False then Writeln('Это не целое число!')
    else Writeln('Точный результат: ',a+b)
    end
end.

Тестовое решение:
Первое слагаемое: 5423323409523846095938445870434764308454095
Второе слагаемое: 7425543205430235436743455446541423534233
Точный результат: 5430748952729276331375189325881305731988328
ПОКАЗАТЬ ОТВЕТЫ
mamatvoeymamy mamatvoeymamy  20.09.2020 07:55
Var
  s,s1:string;
  a,b:array[1..100]of integer;
  i,n,x,k:integer;
    begin
      readln(s);
      readln(s1);
      n:=1;
       if length(s)>length(s1) then
        x:=length(s)
        else x:=length(s1);
         for i:=1 to length(s) do
         begin
          val(copy(s,i,1),k,n);
          a[i+x-length(s)]:=k;
         end;
           for i:=1 to length(s1) do
         begin
          val(copy(s1,i,1),k,n);
          b[i+x-length(s1)]:=k;
         end;
      for i:=1 to length(s) do
        a[i]:=a[i]+b[i];
        for i:=length(s) downto 2 do
        begin
         a[i-1]:=a[i-1]+a[i]div 10;
         a[i]:=a[i]mod 10;
        end;
      for i:=1 to length(s) do
       write(a[i]);
        
        
      end.
         
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика