在我们用程序做加法时,总会遇到一种情况:输入的数据与结果都超出了“long long int”的范围。
所以我们就需要建立一些数组来帮助运算,也就是高精度。
下面亮出程序:
#include<iostream>
using namespace std;
int main(){
char a[21],b[21]; //两个超大的数。
int c[21]={},d[21]={},e[21]={}; //替换整形数组。
cin>>a>>b;
int lenm=max(strlen(a),strlen(b)); //纪录最大位数
int lena=strlen(a),lenb=strlen(b);
for(int i=0;i<lena;i++) c[i]=a[lena-i-1]-'0'; //替换
for(int i=0;i<lenb;i++) d[i]=b[lenb-i-1]-'0';
for(int i=0;i<lenm;i++){ //计算
e[i]+=c[i]+d[i];
e[i+1]+=e[i]/10;
e[i]%=10;
}
if(e[lenm]>0) lenm++;
while(e[lenm-1]==0&&lenm>1) lenm--; //去除前导零
for(int i=lenm-1;i>=0;i--) cout<<e[i];
}