2010-05-05 50 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