高精度加法,就是两个大于int,long long类型的数做相加(这里主要是介绍给新手的)这种数有很多位(常见的1000,10000位)
我们一般采用字符串的方法进行输入,然后求他的长度:
#include<bits/stdc++.h>
using namespace std;
char a1[10001],b1[10001];
int a[10001],b[10001],c[20011];
int main(){
cin>>a1>>b1;
int la=strlen(a1),lb=strlen(b1);
接下来倒叙转int类型数组,为啥要倒叙?因为两个数可能会产生进位,先算前面的数不能应对进位
例如:3348526346
47444646
这里,第一个数的百万位和第二个数的百万位的“8+7”有进位,这时,先算前面的千万位就涉及不到进位了。
for(int i=0;i<la;i++){
a[i]=a1[la-i-1]-48;
}
for(int i=0;i<lb;i++){
b[i]=b1[lb-i-1]-48;
}
然后开始真正的计算,我们用c数组当结果,lc当c数组的长度(这里要求la和lb哪个大)
int lc=max(la,lb);
int x=0;//进位
for(int i=0;i<