Submission
Status:
P-----PP-
Subtask/Task Score:
36/100
Score: 36
User: Jokul
Problemset: บวกเลขฐาน
Language: c
Time: 0.003 second
Submitted On: 2025-10-01 20:15:34
#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;
a=strlen(num1);
int n1[a+1],n2[a+1];
char b[a+1];
int mul=1;
for(int i=1;i<a;i++)
{
mul=mul*base;
}
for(int i=1;i<=a;i++)
{
b[i]=0;
}
b[0]='0';
n1[0]=0;
n2[0]=0;
for(int i=1;i<=a;i++)
{
if(num1[i-1]>=48&&num1[i-1]<=57)
n1[i]=(num1[i-1]-'0');
else if(num1[i-1]>=65&&num1[i-1]<base+55&&base>10)
n1[i]=(num1[i-1]-55);
if(num2[i-1]>=48&&num2[i-1]<=57)
n2[i]=(num2[i-1]-'0');
else if(num2[i-1]>=65&&num2[i-1]<base+55&&base>10)
n2[i]=(num2[i-1]-55);
}
//////////////////////////////////////////////////////////
int sum[a+1];
for(int i=1;i<=a;i++)
{
sum[i]=n1[i]+n2[i];
if(sum[i]>=base)
{
b[i]=b[i]+'0'+sum[i]%base;
b[i-1]=b[i-1]+1;
}
else if(sum[i]%base>=10&&sum[i]<base)
{
b[i]=b[i]+'A'+sum[i]%base-10;
}
else if(sum[i]%base<10&&sum[i]<base)
{
b[i]=b[i]+'0'+sum[i]%base;
}
}
if(b[0]!='0')
{
printf("%c",b[0]);
}
for(int i=1;i<=a;i++)
{
printf("%c",b[i]);
}
}