1

我必须使用 Knuth 的算法 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}

我真的不知道从哪里开始。任何帮助或指导将不胜感激!

4

1 回答 1

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)将减数左移到适当的位置进行减法。

于 2013-10-18T09:07:06.230 回答