思路:使用字符串读入;倒序存入整型数组里,用整型数组来计算
只需要考虑进位和去除数组尾数的0即可,比使用字符串计算简单很多
#include<bits/stdc++.h>
using namespace std;
int a[510];int b[510];int c[510];
int main(){
string str1,str2;
cin>>str1>>str2;先以字符串读入
int l1=str1.size();int l2=str2.size();
for(int i=0;i<l1;i++)//倒序转存到数组里//低位放前,高位放后,便于进位
{
a[i]=str1[l1-1-i]-'0';
}
for(int i=0;i<l2;i++)
{
b[i]=str2[l2-1-i]-'0';
}
for(int i=0;i<510;i++)
{
c[i+1]+=(a[i]+b[i]+c[i])/10;//c[i]为进位的值 例9999+1;
c[i]=(a[i]+b[i]+c[i])%10;//自己动笔写一下就知道为什么要加c[i]了
}
int k=509;
while(c[k]==0&&k>0){//while循环将数组后没有用的0去掉
//k>0是为了处理当0+0时的情况
k--;
}
for(int i=k;i>=0;i--)
{
cout<<c[i];
}
}