演算法詳解 高精 (3)A B Problem

2021-07-22 13:23:06 字數 874 閱讀 4252

今天我們要講的是最簡單的a+b問題。。。

————————————華麗的分割線————————————

沒錯我們今天要花一整天來講愚蠢的a+b problem。。。qwq

好了恢復正題

題目:見第二個超連結

為了模擬+運算,我們首先要算一算這個東西:

21324+98657(自己亂編的)

首先我們定義兩個高精數:

高精數定義:

struct bignum

a,b;

先想想在mian裡面要怎麼寫

首先我們剛才那個算式是怎麼算的?

是不是答案的第i位=a得第i位+b的第i位?

於是我們可以這樣搞:

for(int i=0;i可是還是剛才的算式,用這個東西算第5位時。。。

9+2=11

所以第5位就是11?

好像這個程式少了點什麼。。。

沒錯就是進製!!!

所以我們用x記錄進製,把c.s[i]=s[i]+a.s[i];變成c.s[i]=s[i]+a.s[i]+x;就沒了

這時候我們就要判斷有沒有進製了

有兩種方法:

1。判斷結果是否》10,若》10c.s[i+1]++;

2。記x=c.s[i]/10,c.s[i]%=10

我們通常用第二種

為什麼?

因為以後弄乘法時第一種進製就沒用了而寫第二種進製可以直接複製貼上~

要**戳我

————————————華麗的分割線————————————

愉快的結束了~

下一章講減法~

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

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

高精乘 大數乘 詳解

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

演算法詳解 高精 (1)(我的)高精度模板

這是關於高精度的所有文章的開頭。本 用了operator重定義,不會的就看其他的文章吧。以後的文章 將不會給出,要 來這裡 include include include include include include include include include define ci const ...