Theres a BigInt類和兩個對象num1和num2。我有一個實驗室任務,我必須乘以num1和num2。它們可以是最多50位的整數。該類有一個大小和一個digit.size是輸入的整數中的數字位數,digit是一個包含整數的數組。Java將兩個BigInt對象相乘
我必須寫倍增這兩個對象,並返回該產品的方法。我有點困惑如何開始這個。我見過有兩個循環和一個基地的例子。我不知道該基地會用於什麼。
任何指針在正確的方向將不勝感激。
Theres a BigInt類和兩個對象num1和num2。我有一個實驗室任務,我必須乘以num1和num2。它們可以是最多50位的整數。該類有一個大小和一個digit.size是輸入的整數中的數字位數,digit是一個包含整數的數組。Java將兩個BigInt對象相乘
我必須寫倍增這兩個對象,並返回該產品的方法。我有點困惑如何開始這個。我見過有兩個循環和一個基地的例子。我不知道該基地會用於什麼。
任何指針在正確的方向將不勝感激。
我假設的基礎是十進制/十六進制等,爲更廣泛的實現......
一般情況下,你需要使用正常長乘法,就像在學校裏學到。
還要注意,結果可能是多達100位長度 - 如果你只需要50個最顯著,你可以優化長乘法位(幾乎縮短一半)。
注意,違背了正常的長除法學會了學校最好將數據寫入輸出數組,而不是創建中間數組。使算法更簡單,但仍然非常基本 - Knuth在少量的MIX組合中實現了這一點;)提醒:n位和m位數的任何乘法將至多有m + n個位置。 – Voo
你知道的[長乘法(http://en.wikipedia.org/wiki/Long_multiplication#Long_multiplication)? –
http://stackoverflow.com/questions/2120493/how-to-write-own-multiplication-of-big-numbers –
我想用'的BigInteger#multiply'被認爲是作弊? –