2010-05-05 55 views
0

我应该写和使用递归(分而治之)乘以两个数组的算法。这些数组包含大于long(int 64)或double容量的大数字。 请帮忙写这个算法在C#中?使用递归和数组相乘大数字

+7

当然。你先走。你到目前为止有什么? – 2010-05-05 05:27:06

+0

听起来像作业... – Strawberry 2010-05-05 05:35:53

+0

我有一些方法,它没有使用数组。 – 2010-05-05 05:46:17

回答

0

这里有一个开始:将每个数字分成2个部分,递归地将它们相乘,然后将它们与正确的偏移量相加。

+0

我知道这一点,但如何实现数组?我将我的大数字保存在两个数组中。 – 2010-05-05 05:38:30

+0

@ Keith,你的意思是使用正常的数组乘法程序,但实际的乘法使用分而治之? – Archie 2010-05-05 06:28:55

+0

将阵列分成两半。使用下列公式进行2k位乘法:(A + B * 2^k)*(C + D * 2^k)= A * C +(A * D + B * C)* 2^k + B * D 2 ^(2k)。将你的第一个被乘数除以2得到A和B,第二个被乘数得到C和D. – 2010-05-05 17:05:53