ПАСКАЛЬ. Длинная арифметика. Нужно сложить два великих длинных числа.

0 голосов
68 просмотров

ПАСКАЛЬ. Длинная арифметика. Нужно сложить два великих длинных числа.


Информатика (100 баллов) | 68 просмотров
0

берете PascalABC.NET и не морочите себе голову, или Python

0

нужно решить в PascalABC)

0

в PascalABC.NET есть тип Biginteger

Дан 1 ответ
0 голосов

//длинная арифметика

begin

 var a := '123456789123456789';//ReadString();

 var b := '123456789123456789123';//...

 

 var l := Abs(a.Length - b.Length);

 var source := l*'0';

 

 if a.Length > b.Length then

     insert(source, b, 1)

 else

     insert(source, a, 1);

 

 var s := '';

 var mem := 0;

 

 for var i:=a.Length downto 1 do

 begin

   var c := a[i].ToDigit + b[i].ToDigit + mem;

   mem := c div 10;

   insert((c mod 10).ToString, s, 1)

 end;

 

 if (mem > 0) then insert('1', s, 1);

 

 s.Println;

end.

(2.5k баллов)
0

PascalABC.NET

0

А с типом BigInteger это было бы так

0

begin var a := '123456789123456789'.ToBigInteger; var b := '123456789123456789123'.ToBigInteger; Print(a + b)end.