Большое целочисленное деление — алгоритм Кнута D

Я должен разделить любое число (независимо от размера) на другое число, используя деление большого целого числа, например, с помощью алгоритма Кнута D (Искусство программирования тома 2). 74839234 от 72548,

Я сделал два массива для представления этих чисел

n[] = {7,4,8,3,9,2,3,4}
d[] = {7,2,5,4,8}

Я пытаюсь получить вывод, как это:

q[] = {1,0,3,1}
r[] = {4,2,2,4,6}

Я действительно не знаю, с чего начать. Любая помощь или руководство будут оценены!

1

Решение

На D1 у вас есть d=1так установить

n[]={0,7,4,8,3,9,2,3,4}

n = 5, m = 3,

Кроме того, на шаге D4 есть формальная ошибка: (вторая строка) должна быть …

minus q(hat) times (v1, v2, ..., vn)b TIMES b ** (m - j),

Здесь ** означает «сила» (стиль Fortran для простого написания). Конечно, b = 10 вот так

times b ** (m - j) сдвигает вычитаемое влево, в надлежащее место для вычитания.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]