#include<cstdio>
#include<cstring>
#include<cctype>
const int N=2e5+10;
int base;
int a[N],b[N],c[N];
char s[N];
void add()
{
int i=0;
while(i<=a[0]||i<=b[0])
{
i++;c[i]+=a[i]+b[i];c[i+1]+=c[i]/base;c[i]%=base;
}
while(c[i]==0&&i>1)i--;
c[0]=i;
}
int main()
{
scanf("%d",&base);
scanf("%s",s);
int len=strlen(s),k=0,i;
for(i=len-1;i>=0;i--)
if(isupper(s[i]))a[++k]=s[i]-'A'+10;
else a[++k]=s[i]-'0';
a[0]=k;
scanf("%s",s);
len=strlen(s),k=0;
for(i=len-1;i>=0;i--)
if(isupper(s[i]))b[++k]=s[i]-'A'+10;
else b[++k]=s[i]-'0';
b[0]=k;
add();
for(i=c[0];i;i--)
if(c[i]<10)printf("%d",c[i]);
else printf("%c",(char)(c[i]+'A'-10));
return 0;
}
【题解】洛谷P1604B进制星球 进位计数制+高精度
最新推荐文章于 2023-04-02 02:21:33 发布