Ох уж эти все))))

Массив нужной длины всегда под результат можно распределить -- как и делается, например, в модуле Integer.

В классическом Обероне, где нет открытых массивов, проще со списками.

Переложить кнутовские алгоритмы на списки -- косметика: там все проходы по "цифрам" последовательные.