高精度加法
大数相加
题解
- 将字符串转换为字符数组逐位相加,注意处理进位,从后向前计算。
- 只要存在进位就继续处理,当两个字符串长度不同时,需加到较长的字符串结束为止。
代码
解法一:使用数组存储
class Solution {
public:
string solve(string s, string t) {
int a[100000] = {0};
int b[100000] = {0};
int c[100000] = {0};
int mn = 0;
int m = s.size();
int n = t.size();
mn = max(m, n);
for (int i = m - 1; i >= 0; i--) a[m - 1 - i] = s[i] - '0';
for (int i = n - 1; i >= 0; i--) b[n - 1 - i] = t[i] - '0';
for (int i = 0; i < mn; i++) {
c[i] += a[i] + b[i];
c[i + 1] = c[i] / 10; // 进位
c[i] %= 10;
}
if (c[mn]) mn++;
string p = "";
for ( i = mn - ; i >= ; i--) p += (c[i] + );
p;
}
};


