作业比赛编号 : 1549 - 【C21029】瓢虫1班

#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];
}
}

比赛尚未开始或私有,不能查看题目。




返回上一页