我必须使用Knuth算法D(编程第2卷的艺术)使用大整数除法将任意数字(无论大小)除以另一个数字,例如74839234
除72548
。< / p>
我制作了两个数组来表示这些数字
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}
我真的不知道从哪里开始。任何帮助或指导将不胜感激!
答案 0 :(得分: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)
将减数向左移动到适当的减法位置。