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

Ответы 4

  • PascalABC.NET
  • А с типом BigInteger это было бы так
  • begin var a := '123456789123456789'.ToBigInteger; var b := '123456789123456789123'.ToBigInteger; Print(a + b)end.
  • //длинная арифметика

    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.

    • Автор:

      koba
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years