由於筆者最初在一次電腦課想計算大數乘法(即高精度乘法),通過幾個月的摸索終於實現了高精度乘法。
首先我們要知道什麼叫取餘。
取餘即a/b=c………d,a=b*c+d,其中這個d就是餘數;
舉個例子:11/10=1……1,其中這個1就是餘數。
其次需要新的演算法,演算法如下。
上圖為計算方法,簡單來說就是把每個位分離開,都進行互相乘,然後把結果寫出來,最後進製即可。
下面我們利用c語言寫這個**。
#include
void
main()
/*如果當前的陣列大於10,除以10的整數部分進製,取餘的留下來*/
for(i =
0; i < la + lb -
1; i++
)/*遍歷輸出結果*/
printf
("%d"
, c[i]);
/*輸出*/
}
高精度演算法 (加法,乘法) C語言版
define crt secure no warnings include include typedef struct highacc highacc highacc add highacc a,highacc b int i int tmp int maxlen a.len b.len a.le...
c語言高精度乘法
眾所周知,由於整型數不能滿足過大數的運算,所以,在進行過大數的乘法運算時需要運用一種新的方法 高精度乘法。下面我將介紹大數相乘的幾個步驟。1.輸入兩個乘數,並定義後面需要到的變數 include include intmain void 3.我們再宣告乙個陣列c來儲存答案。大家通過乙個簡單的乘法運算...
高精度乘法 C
原理 陣列記錄每一位,最後處理進製 計算201 98,則先計算201 8,再計算201 9,逐位相乘。豎式計算。儲存201和98,逆序儲存到陣列裡面。01 2345 6789 1020 0000 0001 2345 6789 8900 0000 00逐位相乘,得到結果放到result陣列裡面,最後處...