高精度加法 洛谷P1601

2021-10-10 09:26:20 字數 759 閱讀 7489

*題意:*求a+b的和

分析:由題目可知,a和b的範圍是小於等於1e500的,這種情況下,任何乙個型別都存不下這麼大的數,這時候就可以用高精度來做這題。

對於一組數,我們可以先把數讀入然後從個位開始對於兩個位置上的數進行加法操作。(別忘了進製)

對於兩個數,我們在做加法運算的時候是進行右對齊的(如下圖)

而讀入的時候我們是從高位到低位讀入的,可以用兩個指標分別指向兩個陣列的末尾,然後乙個乙個往前加,直到讀到第一位為止。(但是這樣出錯的可能性有點大)因此我們可以把陣列反轉一下,那麼第一位就是最低位,只要處理到最後一位同時別忘了進製即可。

下面附上**:

#include

using

namespace std;

const

int maxn =

600;

char s1[maxn]

,s2[maxn]

;int a[maxn]

,b[maxn]

;int

main()

int len=

max(len1,len2)-1

;if(a[max

(len1,len2)

]) len++

;for

(int i=len;i>=

0;i--

)}

P1601高精度加法

傳送門 雖然本題一本通上有,但是一本通不是萬能的,這道題就漏掉了進製 所以這告訴我們加法進製很重要 直接上修改後的題解 include include include using namespace std char s 10001 k 10001 int a 10000001 b 100001 c...

P1601 高精加法 壓位

原題鏈結 高精加法是比較熟悉的乙個高精了 但是現在要練習壓位 一開始覺得 簡單的合併就好 後來想起來還要 保證壓的這幾位是順序 但是整體是倒序 想了個比較麻煩的辦法 include include include include include include include include usi...

洛谷P2142 高精度減法

高精度減法 輸入格式 兩個整數a,b 第二個可能比第乙個大 輸出格式 結果 是負數要輸出負號 輸入樣例 1 複製2 1 輸出樣例 1 複製1 20 資料a,b在long long範圍內 100 資料0同加法類似,但多了乙個借位的過程 include include include include i...