Чего-то такого я и ожидал. Складывать и вычитать числа произвольной точности легко - череза базовые операции и операцию переноса. Замечу, что в произвольной позиционной системе счисления (точнее, той у которой каждая позиция представляет степень основания - 1 ) два числа при сложении дадут перенос не более чем в следующий от максимального числа. Поэтому для десятичных это можно выразить как
x[color=#808030; ][[/color] i [color=#808030; ]][/color] [color=#808030; ]+[/color][color=#808030; ]=[/color] a[color=#808030; ][[/color] i [color=#808030; ]][/color] [color=#808030; ]+[/color] b[color=#808030; ][[/color] i [color=#808030; ]][/color][color=#808030; ];[/color] [color=#808030; ]/[/color][color=#808030; ]/[/color] a in [color=#808030; ][[/color][color=#008c00; ]0[/color][color=#808030; ]-[/color][color=#008c00; ]9[/color][color=#808030; ]][/color][color=#808030; ],[/color] b in [color=#808030; ][[/color][color=#008c00; ]0[/color][color=#808030; ]-[/color][color=#008c00; ]9[/color][color=#808030; ]][/color] if [color=#808030; ]([/color] x[color=#808030; ][[/color] i [color=#808030; ]][/color] [color=#808030; ]>[/color] [color=#008c00; ]9[/color] [color=#808030; ])[/color] [color=#808030; ]{[/color] x[color=#808030; ][[/color] i [color=#808030; ]-[/color] [color=#008c00; ]1[/color] [color=#808030; ]][/color][color=#808030; ]+[/color][color=#808030; ]+[/color][color=#808030; ];[/color] x[color=#808030; ][[/color] i [color=#808030; ]][/color] [color=#808030; ]-[/color][color=#808030; ]=[/color] [color=#008c00; ]10[/color][color=#808030; ];[/color] [color=#808030; ]}[/color] |
Created with colorer-take5 library. Type 'text'
Для умножения как в столбик - очень быстро и удобно - умножим, сложим, и т.д.
А вот с делением облом - надо более сложные алгоритмы использовать.