作业比赛编号 : 1597 - 【C21105】瓢虫2班
#include<iostream>
using
namespace
std;
int
main(){
//高精度加法
string s1,s2;
cin>>s1>>s2;
int
a[241]={},b[241]={},c[241]={};
//73 62定义 a,b,c三个数组,存放我们的两个高精度数; 以及他们的和;
int
lena=s1.length(),lenb=s2.length(),lenc;
for
(
int
i=0;i<lena;i++){
//a[1]=3,a[2]=7将我们第一个高精度数存放到数组a里面,注意是逆序
a[i]=s1[lena-1-i]-
'0'
;
}
for
(
int
i=0;i<lenb;i++){
//b[1]=2,b[2]=6将我们第二个高精度数存放到数组a里面,注意是逆序
b[i]=s2[lenb-1-i]-
'0'
;
}
int
len=max(lena,lenb);
for
(
int
i=0;i<len;i++){
//c[1]=5,c[2]=13将两个高精度数想加,放在数组c里面
c[i]=a[i]+b[i];
}
for
(
int
i=0;i<len;i++){
//c[1]=5,c[2]=3,c[3]=1处理数组c里面的数据,确保每一位上只有一个阿拉伯数字
c[i+1]+=c[i]/10;
c[i]%=10;
}
if
(c[len]>0) len++;
//判断最后有没有进位,有的话,结果都长度+1
for
(
int
i=len-1;i>=0;i--){
//输出这个和
cout<<c[i];
}
}