作业比赛编号 : 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];
 }
}

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




返回上一页