高精度加法

2021-07-23 03:48:44 字數 2348 閱讀 4320

問題描述

輸入兩個整數

a和 b,輸出這兩個整數的和。

a和 b都不超過100位。

演算法描述

由於 a和

b都比較大,所以不能直接使用語言中的標準資料型別來儲存。對於這種問題,一般使用陣列來處理。

定義乙個陣列

a, a[0]用於儲存

a的個位,

a[1]用於儲存

a的十位,依此類推。同樣可以用乙個陣列

b來儲存

b。 計算 c = 

a + 

b的時候,首先將

a[0]與

b[0]相加,如果有進製產生,則把進製(即和的十位數)存入

r,把和的個位數存入

c[0],即

c[0]等於(

a[0]+

b[0])%10。然後計算

a[1]與

b[1]相加,這時還應將低位進上來的值

r也加起來,即

c[1]應該是

a[1]、

b[1]和

r三個數的和.如果又有進製產生,則仍可將新的進製存入到

r中,和的個位存到

c[1]中。依此類推,即可求出

c的所有位。

最後將c輸出即可。

輸入格式

輸入包括兩行,第一行為乙個非負整數

a,第二行為乙個非負整數

b。兩個整數都不超過100位,兩數的最高位都不是0。

輸出格式

輸出一行,表示

a + 

b的值。

樣例輸入

20100122201001221234567890

2010012220100122

樣例輸出

20100122203011233454668012

源**

#include

#include

#define maxa 100

#define maxb 100

#define maxc 101

int

main()

if (la

>

lb )

}

else

if ((la

<

lb) && (j

>=

0))

}

else

for (i

=maxc

-1; i

>=

0; i

--)

}

for (j

=i; j

>=

0; j

--)

printf("\n");

return

0;

}

詳細記錄

評測點序號

評測結果

得分cpu使用

記憶體使用1正確

10.00

0ms836.0kb

輸入輸出2正確

10.00

0ms840.0kb

輸入輸出3正確

10.00

0ms840.0kb

輸入輸出4正確

10.00

0ms836.0kb

輸入輸出5正確

10.00

0ms836.0kb

輸入輸出6正確

10.00

0ms836.0kb

輸入輸出7正確

10.00

0ms836.0kb

輸入輸出8正確

10.00

0ms836.0kb

輸入輸出9正確

10.00

0ms836.0kb

輸入輸出

10正確

10.00

0ms836.0kb

輸入輸出

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...