Короткий теоретичний матеріал з арифметики довгих чисел, cmc @ msu
структури даних
Залежно від прикладних задач, для вистави «довгих» чисел використовуються або статичні вектори (масиви), або динамічні структури (списки).
Алгоритми обчислення арифметичних операцій
Щоб реалізувати базові арифметичні операції +, -. x, / над «довгими» числами, слід спиратися на стандартні методи обчислення складання / віднімання / множення «в стовпчик» і ділення «куточком». При цьому знадобляться допоміжні підпрограми:- обнулення "довгого" числа (: = 0)
- присвоювання «довгих» чисел один одному (: =)
- обмін значень «довгих» чисел (swap)
- визначення кількості розрядів «довгого» числа (length)
- порівняння «довгих» чисел (. <> )
- взяття абсолютного значення «довгого» числа (abs)
- зміна знака «довгого» числа (inv)
- зрушення «довгого» числа на n розрядів вправо (shiftr)
- зрушення «довгого» числа на n розрядів вліво (shiftl)
Пронумеруємо розряди «довгих» чисел, наприклад, ai або bi. і покладемо M рівним основи системи числення.
Алгоритм «довгого» складання заснований на методі складання в «стовпчик». При цьому циклічно, починаючи з молодших розрядів, проводиться складання з переносом.
Перевірка роботи алгоритму складання
Введіть невід'ємні цілі аргументи a і b.