20进制的高精加法
没有坑1A
#include <bits/stdc++.h>
using namespace std;
char a[200],b[200];
int Get(char ch)
{
if (ch>='0'&&ch<='9')
return ch-'0';
else
return ch-'a'+10;
}
char rGet(int ch)
{
if (ch>=0&&ch<=9)
return ch+'0';
else
return ch-10+'a';
}
void Gao()
{
int a1[200],a2[100],len1,len2,l;
memset(a1,0,sizeof(a1));
memset(a2,0,sizeof(a2));
len1=strlen(a);len2=strlen(b);
l=max(len1,len2);
for (int i=len1-1;i>=0;i--)
a1[len1-i]=Get(a[i]);
for (int i=len2-1;i>=0;i--)
a2[len2-i]=Get(b[i]);
for (int i=1;i<=l;i++)
{
a1[i]+=a2[i];
a1[i+1]+=a1[i]/20;
a1[i]%=20;
}
if (a1[l+1]>0)
l++;
for (int i=l;i>=1;i--)
printf("%c",rGet(a1[i]));
cout<<endl;
}
int main()
{
//freopen("a.in","r",stdin);
while(scanf("%s%s",a,b)!=EOF)
Gao();
return 0;
}