高精度乘法c 實現

2021-09-11 01:43:51 字數 836 閱讀 3255

注:高精度乘法是應聘中常見的筆試題,主要考察用字串模擬乘法的過程,下面提供乙個比較簡單的版本實現。如果錯誤,請多指教。

如:123 * 23

(1)儲存的時候從個位往前進行儲存。

(2)123的個位(第0位)乘以23得到49(result[0] = 9, result[1] = 4)

(3)123的十位(第1位)乘以23得到460,(result[0 +1] = (4 + 6)% 10, result[1 + 1] = (0 + 4)%10 = 4)

具體可以自己進行一下乘法運算來理解。

// 高精度乘法

#include #include #define n 1000

using namespace std;

int main()

// 每一遍迴圈之後的進製

result[i + len2] += carry;

} int index = len1 + len2;

// 去掉前面多餘的0

while (index > 0 && result[index] == 0) index--;

for (int i = index; i >= 0; i--)

cout << result[i];

cout << endl;

return 0;

}

測試例項:

輸入:

123

23

輸出:

2829

高精度乘法 C

原理 陣列記錄每一位,最後處理進製 計算201 98,則先計算201 8,再計算201 9,逐位相乘。豎式計算。儲存201和98,逆序儲存到陣列裡面。01 2345 6789 1020 0000 0001 2345 6789 8900 0000 00逐位相乘,得到結果放到result陣列裡面,最後處...

c 高精度乘法(大數乘法)

對於計算機無法用普通資料型別 如 longint 表示的大整數進行乘法運算,稱為高精度乘法。高精度乘法主要包括以下幾個要求及過程 1 為了獲取輸入數字的每一位的值,包括個位,十位等,輸入整型的資料是無法滿足的,因此,輸入資料必須為字串形式。2 字串轉整型,儲存每一位值於陣列中 3 高精度乘法,重點!...

高精度減法,高精度乘法

高精度減法 oj資料偏弱如果新增乙個101 2就錯了,下面這一步是為了防止錯誤的 if a aa 0 可能出現第一位的1被借走的的情況,所以加乙個while找第乙個不是0的 while c i 0 i include include include include include include u...