/*
1.首先判断两个字符串的长度,取出最大值
2.创建两个整形数字,长度都为最大值(好处利于相加)
3.分别将两个字符串的字符转换成整数,反向存入整形数组中
4.创建一个结果数组(int 型,长度为max+1.两个相等的数相加,最多为其长度加1)两个数组的数组分别相加,反向存入结果数组中
5.结果数组的输出
*/
#include <iostream>
#include <vector>
#include <string>
using namespace std;
void bigdataadd(char *da,char *db)
{
int la=strlen(da);
int lb=strlen(db);
int max=la>lb?la:lb;
vector<int> stra(max);
vector<int> strb(max);
for (int i=0;i<la;i++)
{
stra[i]=da[la-1-i]-'0';
}
for (int i=0;i<lb;i++)
{
strb[i]=db[lb-1-i]-'0';
}
vector<int> pre(max+1);
for (int i=0;i<max;i++)//注意此处的循环范围
{
pre[max-i]=pre[max-i]+stra[i]+strb[i];
if (pre[max-i]>9)
{
pre[max-i]-=10;
pre[max-i-1]++;
}
}
int m=0;
while(pre[m]==0){ m++;}
for (int j=m;j<max+1;j++)
{
cout<<pre[j];
}
cin.get();
}
void main()
{
char sa[100]={0},sb[100]={0};
cin>>sa>>sb;
bigdataadd(sa,sb);
cin.get();
}