高精乘 大數乘 詳解

2021-09-27 07:08:07 字數 1515 閱讀 5467

高精乘就是兩個比較大的數字相乘,結果超過了基本型別的表示範圍,所以不能直接用普通的資料型別相乘,所以我們要用字串來表示,所以我們來用stl裡的string來表示字串.

#include

using namespace std;

#include

#define maxlen 100

string sum

(string &a, string &b)

;//放a

int n2[maxlen]=;

//放b

int tmp[maxlen]=;

//放最終的

for(

int i =

0; i < a.

size()

; i++

)for

(int i =

0; i < b.

size()

; i++

)int sum =0;

int maxlen = a.

size()

> b.

size()

? a.

size()

: b.

size()

;int j;

for( j =

0; j < maxlen; j++

) j--

; j +

= tmp[j+1]

;while

(j>=0)

return s;

}string mul

(string &a, string &b)

reverse

(a.begin()

, a.

end())

;//高精乘無所謂

reverse

(b.begin()

, b.

end())

;int n1[maxlen]=;

//放長的

int n2[maxlen]=;

//放短的.

int tmp[maxlen]=;

//放最終的

for(

int i =

0; i < a.

size()

; i++

)for

(int i =

0; i < b.

size()

; i++

)int n1_size = a.

size()

;int n2_size = b.

size()

;int sum =0;

int i, j;

for( i =

0; i < n1_size; i++)}

int size=i+j-1-

1+tmp[i+j-1]

;while

(size >=0)

return s;

}int

main()

高精加 高精乘

高精度演算法是每個初學者的入門必備,在我們做題目的時候,總會遇到一下精度太高的問題,即使用了long long也遠遠不夠。所以學習高精度也是很有必要的。本篇文章就以下面這道題為例子,簡單介紹一下高精加和高精乘。洛谷原題 洛谷部落格題解 本蒟的思路就是高精乘 高精加,就是把高精乘的模板套上去接著套高精...

高精度乘法入門詳解(高精乘高精)

高精度乘法。輸入兩個正整數,求它們的積。類似加法,可以用豎式求乘法。在做乘法運算時,同樣也有進製,同時對每一位進行乘法運算時,必須進行錯位相加,如圖3 圖4。分析c陣列下標的變化規律,可以寫出如下關係式 ci c i c i 由此可見,c i跟a i b j 乘積有關,跟上次的進製有關,還跟原c i...

高精乘 一位乘多位

比較簡單的高精乘,為多位乘多位做鋪墊 題目描述 傳說古代印度有個喜歡下棋的國王叫舍罕,而宰相達依爾是個聰明的大臣,發明了西洋棋。國王玩得愛不惜手,決定獎賞宰相。達依爾說 陛下,我別無他求,請你在這張棋盤的第乙個格仔裡賞我一粒麥子 在第 個格仔裡賞我2粒麥子 在第 個格仔裡賞我 粒麥子 在第 個格仔裡...