高精度加法詳解

2021-10-20 19:35:19 字數 1262 閱讀 2695

對於加法學過程式設計的都知道,不過如果資料非常的大,大到無法用long long 這個資料型別儲存,,特別是在這個大資料時代,這樣的情況時有發生。這個時候就需要高精度演算法來解決。

演算法基本思想:

其實也很簡單,首先,既然普通的資料型別不夠大,那麼我們乾脆用陣列來儲存,這樣就解決了資料溢位的問題。其次,要怎麼進行計算呢?就是用小學學加法時候的筆算用**表示出來。比如小學計算947+34=?這個問題時:

如此,只要陣列足夠大,多大的資料我也可以計算出來。

演算法描述:

接著就是**實現:

#include

#include

using namespace std;

int a[

100000

],b[

100000

],c[

10000000

],temp=

0,lena,lenb,lenc;

char a[

1000000

],b[

10000000];

//因為陣列太大盡量都定義在main函式外面。

intmain()

if(temp!=0)

//看最後是否temp為0。並進行分類處理

for(

int i=lenc-

1;i>=0;

--i)

//先輸出高位 c

cout<

;return0;

}

洛谷練習題:

題目描述

高精度加法,相當於a+b problem,不用考慮負數.

輸入格式

分兩行輸入。a,b≤10500a,b \leq 10^a,b≤10500

輸出格式

輸出只有一行,代表a+b的值

輸入輸出樣例

輸入 #1

1

1

輸出 #1

2
輸入 #2

1001

9099

輸出 #2

101

python高精度加法 高精度加法

1.思路 其實就是模擬,加法是最簡單的,從個位開始加,價位加到前一位,然後再取10的餘數。for int i 1 i len i 計算和 c i a i b i 進製 c i 1 c i 10 取10的餘數 c i 10 2.實現 int len max a.length b.length 倒著存,...

高精度加法 高精度減法

雖然以前自己就學習過,但是自己打出來的 目測效率不高,也不夠精簡 因此學習一下eden裡面的這一題 big integer add subtract ifndef big integer define big integer include include using std string usin...

高精度加法

program gjplus vars1,s2,s3,st,s string i,j,k,l1,l2,li,n1,n2,n3,n4 integer begin readln s1 readln s2 l1 length s1 l2 length s2 if l1 l2 then li l1 else...