$$\color{red}{算法}\color{blue}{基础课}\color{purple}{笔记and题解}\color{green}{汇总}$$
笔记:
高精部分的四个题目没什么好讲的。。。
也就是存储和运算的注意事项:
个位在开头,利于对齐,进位。
注意进位、退位!!!
接下来三个就没有注意事项了。。。
每一位相加即可。
代码:
#include<bits/stdc++.h>
using namespace std;
string a0, b0;
int a[100010], b[100010];
int main(){
cin >> a0 >> b0;
int l1 = a0.size(), l2 = b0.size();
for (int i = 0; i < l1; i++) a[l1 - i] = a0[i] - 48;
for (int i = 0; i < l2; i++) b[l2 - i] = b0[i] - 48;
l1 = max(l1, l2);
for (int i = 1; i <= l1; i++){
a[i] += b[i];
if (a[i] > 9) a[i + 1]++, a[i] %= 10;
}
if(a[max(l1,l2) + 1] > 0) l1++;
for (int i = l1; i >= 1; i--) cout << a[i];
return 0;
}