在c++中,最大的数据类型是long long,范围是-2^63~2^63-1,但这仍然无法满足高精度运算,原理吗,就是小学学的列竖式计算,如下图
废话不多说,上代码
#include<bits/stdc++.h>
using namespace std;
int a[1005],b[1005],c[1005];
string s1,s2;
int main()
{
cin>>s1>>s2;
int la=s1.size(),lb=s2.size(),x=0,t=0;
for(int i=0;i<la;i++){
a[la-i]=(int)s1[i]-'0';
}
for(int i=0;i<lb;i++){
b[lb-i]=(int)s2[i]-'0';
}
while(t<=la||t<=lb){
c[t]=a[t]+b[t]+x;
x=c[t]/10;
c[t]%=10;
t++;
}
c[t]=x;
if(c[t]==0){
t--;
}
for(int i=t;i>=1;i--){
cout<<c[i];
}
return 0;
}