2013-04-18 315 views
1

我必須使用Knuth算法D(編程的第2卷的藝術)使用大整數除法將另一個數除以任何數(例如74839234,72548)。大整數除法 - Knuth的算法D

我做了兩個數組來代表這些數字

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

寫出您在英文說明中指示使用的算法,例如你如何告訴人類去做。確定編程結構,例如for循環以及ifs和while循環。重寫爲僞代碼。然後,將其重寫爲代碼。 – Patashu 2013-04-18 04:23:35

+0

哪種編程語言? – 2013-04-18 04:29:36

+0

我有一些問題了解算法。因爲我不知道從哪裏開始僞代碼。我一直在玩excel,試圖找出答案。 – Z3R0 2013-04-18 04:59:29

回答

1

在D1你有d=1,所以設置

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

n = 5m = 3

此外,還有在步驟D4的正式錯誤:(第二線)應該是...

minus q(hat) times (v1, v2, ..., vn)b TIMES b ** (m - j)

這裏,**表示「權力」(Fortran風格,易於編寫)。當然,b = 10這裏,所以

times b ** (m - j)將減數左移,適當的地方減法。