高精度乘法 C

2022-06-20 03:51:10 字數 1245 閱讀 3685

原理:陣列記錄每一位,最後處理進製

計算201*98,則先計算201*8,再計算201*9,逐位相乘。豎式計算。

儲存201和98,逆序儲存到陣列裡面。01

2345

6789

1020

0000

0001

2345

6789

8900

0000

00逐位相乘,得到結果放到result陣列裡面,最後處理進製。01

2345

6789

1011

1213

1415

1617

181980

16...01

2345

6789

1011

1213

1415

1617

181990

18...01

2345

6789

1011

1213

1415

1617

1819209

1618

...開始處理進製,從低位到高位。01

2345

6789

1011

1213

1415

1617

...896

9100

0000

0000

000...

將前導0輸出過程中全部剔除

**如下:

#include #include using namespace std;

#define max 10000

int main(void)

; int b[max] = ;

int result[max * 2] = ;

for (int i = len1-1, j = 0; i >= 0; i--,j++)

for (int i = len2-1, j=0; i >= 0; i--,j++)

for (int i = 0; i < len1; i++)

}int len3 = len1+len2;

for (int i = 0; i < len3; i++)

}int pos;

for (pos = len3-1; pos > 0; pos--)

for (; pos >= 0; pos--)

return 0;

}

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...

高精度乘法

問題描述 給你兩個正整數a,b,計算它們的乘積。輸入格式 第一行乙個正整數a 第二行乙個正整數b 輸出格式 一行,表示a b 樣例輸入 111222333444555666777888999 999888777666555444333222111 樣例輸出 提示 a,b分別不超過100000位 ff...