問題描述
輸入兩個整數
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
思路:
用字元陣列來存放,要把輸入較長的陣列放在a陣列中,較短的放在b陣列,用c陣列存放最終結果
模擬手算加法的步驟,用t來記錄進製數。
**:
#include#include#includeusing namespace std;
int main()
for (j=i;j>=0;j--)
if (t>0)
if (flag)
k-=1;
for (i=k;i>=0;i--)
printf("%d",c[i]);
return 0;
}
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...