题目:A+B Problem(高精) - 洛谷
#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int A[N],B[N],C[N];
int Add(int a[],int b[],int c[],int cnt){int t=0; //表进位for(int i=1;i<=cnt;i++){t+=a[i]+b[i]; c[i]=t%10; t/=10;}if(t) c[++cnt]=1; //如果为1,表示还有一个进位return cnt; //表两数之和的长度
}
signed main(){string a,b;cin>>a>>b;int cnt1=0;for(int i=a.size()-1;i>=0;i--){A[++cnt1]=a[i]-'0';}int cnt2=0;for(int i=b.size()-1;i>=0;i--)B[++cnt2]=b[i]-'0';int tot=Add(A,B,C,max(cnt1,cnt2));for(int i=tot;i>=1;i--)cout<<C[i];return 0;
}
从这道题学到的:
- 高精度的范围定义
- 高精度加法的理解
- 额外知识点 : 在主函数外开数组全部都会默认为0