C++ 大整数除法-Knuth';s算法D

C++ 大整数除法-Knuth';s算法D,c++,integer-division,C++,Integer Division,我必须使用Knuth的算法D(编程艺术第二卷)将任何数字(无论大小)除以另一个数字,例如74839234by72548 我制作了两个数组来表示这些数字 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} 我真的不知道从哪里开始。任何帮助或指导都将不胜感激 在D1,您有d=1,因此设置 n[]={0,7,4,8,3,9,2,3,4} n=5,m=3 此外,步骤D4中有一个

我必须使用Knuth的算法D(编程艺术第二卷)将任何数字(无论大小)除以另一个数字,例如
74839234
by
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}

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

在D1,您有
d=1
,因此设置

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

此外,步骤D4中有一个正式错误:(第二行)应该是

减去q(hat)乘以(v1,v2,…,vn)b乘以b**(m-j)

这里,**的意思是“力量”(Fortran风格,便于书写)。当然,这里的b=10,所以


乘以b**(m-j)
将减数移到适当的位置进行减法。

在D1处,您有
d=1
,因此设置

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

此外,步骤D4中有一个正式错误:(第二行)应该是

减去q(hat)乘以(v1,v2,…,vn)b乘以b**(m-j)

这里,**的意思是“力量”(Fortran风格,便于书写)。当然,这里的b=10,所以


乘以b**(m-j)
将减数移到适当的位置进行减法。

在英语指令中写出你被指示使用的算法,例如,你将如何告诉一个人这样做。识别编程结构,如循环和ifs以及其中的while。重写为伪代码。然后,把它改写成代码。哪种编程语言?我在理解算法时遇到了一些问题。正因为如此,我不知道在编写伪代码时从哪里开始。我一直坐在excel中试图找出答案。在英文说明中写下你被指示使用的算法,例如,你将如何告诉一个人这样做。识别编程结构,如循环和ifs以及其中的while。重写为伪代码。然后,把它改写成代码。哪种编程语言?我在理解算法时遇到了一些问题。正因为如此,我不知道在编写伪代码时从哪里开始。我一直坐在excel中,试图找出答案。