хранить смещение, хранить число на которое умножается, хранить промежуточное значение сумм для умножения, хранить количество оставшихся умножений. я для этого могу выделить 100000 ячеек, этого с головой хватит на все периферийные расходы. а так берем смещение, умножаем на 1 цифру, запоминаем результат и флаг переполнения, идем дальше, так со всеми цифрами, потом вычитаем количество умножений и повторяем процедуру