高精乘就是兩個比較大的數字相乘,結果超過了基本型別的表示範圍,所以不能直接用普通的資料型別相乘,所以我們要用字串來表示,所以我們來用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粒麥子 在第 個格仔裡賞我 粒麥子 在第 個格仔裡...