Submission
Status:
PPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: Jokul
Problemset: บวกเลขฐาน
Language: c
Time: 0.001 second
Submitted On: 2025-10-11 14:48:00
#include<stdio.h>
#include<string.h>
int main()
{
int base;
scanf("%d",&base);
char num1[1000],num2[1000];
scanf("%s",num1);
scanf("%s",num2);
int a,b;
a=strlen(num1);
b=strlen(num2);
int c=a-1,d=b-1;
int n1[a],n2[b],l;
if(a>b)
{
l=a+1;
}
else if(a<=b)
{
l=b+1;
}
int sum[l];
for(int i=0;i<=l-1;i++)
{
sum[i]=0;
}
for(int i=0;i<a;i++)
{
if(num1[i]<='9')
{
n1[i]=(int)(num1[i]-'0');
}
else
{
n1[i]=(int)(num1[i]-'A'+10);
}
}
for(int i=0;i<b;i++)
{
if(num2[i]<='9')
{
n2[i]=(int)(num2[i]-'0');
}
else
{
n2[i]=(int)(num2[i]-'A'+10);
}
}
/*
for(int i=0;i<a;i++)
{
printf("%d ",n1[i]);
}
printf("\n");
for(int i=0;i<b;i++)
{
printf("%d ",n2[i]);
}
printf("\n");*/
for(int i=l-1;i>=1;i--)
{
sum[i]=sum[i]+n1[c];
c--;
if(c==-1)
{
break;
}
}
for(int i=l-1;i>=1;i--)
{
sum[i]=sum[i]+n2[d];
d--;
if(d==-1)
{
break;
}
}
for(int i=l-1;i>0;i--)
{
if(sum[i]>=base)
{
sum[i]=sum[i]%base;
sum[i-1]++;
}
}
char result[l];
for(int i=0;i<l;i++)
{
if(sum[i]<10)
{
result[i]=sum[i]+'0';
}
else if(sum[i]>=10)
{
result[i]=sum[i]-10+'A';
}
}
/*for(int i=0;i<l;i++)
{
printf("%d",sum[i]);
}
printf("\n");*/
if(result[0]=='1')
{
printf("1");
}
for(int i=1;i<l;i++)
{
printf("%c",result[i]);
}
}