用数组装,再倒过来。
#include <iostream>
#include <string.h>
#include <fstream>
using namespace std;
int max(int a,int b)
{
return a>b?a:b;
}
void reverse(char *p,int n)
{
char temp;
for(int i=0;i<n/2;i++)
{
temp=p[i];
p[i]=p[n-1-i];
p[n-1-i]=temp;
}
}
int main()
{
char str1[202],str2[202],ans[202];
int n1,n2,weishu;
cin >> str1>>str2;
n1=strlen(str1);n2=strlen(str2);
reverse(str1,n1);
reverse(str2,n2);
for(int i=0;i<n1;i++)
{
ans[i]=str1[i];
}
for(int i=n1;i<202;i++)ans[i]='0';
for(int i=0;i<n2;i++)
{
if(i==2)continue;
ans[i]+=str2[i]-'0';
}
weishu=max(n1,n2);
ans[weishu]='0';
for(int i=0;i<weishu;i++)
{
if(ans[i]>'9')
{
ans[i]-=10;
if(i!=1){ans[i+1]++;}
else{ans[i+2]++;}
if(i==weishu-1){weishu++;}
}
}
ans[weishu]='\0';
reverse(ans,weishu);
cout<<ans;
return 0;
}