Submission
Status:
---------
Subtask/Task Score:
0/100
Score: 0
User: spiwips
Problemset: บวกเลขฐาน
Language: c
Time: 0.002 second
Submitted On: 2025-10-12 13:45:22
#include<stdio.h>
#include<string.h>
#include<math.h>
int base_to_number(char a[],int base){
int base_multiplier = 1;
int sum = 0;
int len = strlen(a);
if (a[len-1] == '\n'){
a[len-1] = '\0';
}
len = strlen(a);
for (int i = len - 1; i >= 0; i--){
if(a[i]>='A'&&a[i]<='Z'){
sum += (a[i]-55)*base_multiplier;
base_multiplier*=base;
}else{
sum += (a[i]-48)*base_multiplier;
base_multiplier*=base;
}
}
return sum;
}
void number_to_base(int n, int base)
{
if (n == 0) {
printf("0");
return;
}
char res[999];
int i = 0;
while(n > 0)
{
int curr = n % base;
if(curr>=10){
res[i] = curr+55;
}else{
res[i] = curr+48;
}
n/=base;
i++;
}
for(i -= 1;i>=0;i--){
printf("%c",res[i]);
}
}
int main(){
int base;
char a[999],b[999];
scanf("%d\n",&base);
fgets(a,999,stdin);
fgets(b,999,stdin);
int dec_sum = base_to_number(a,base)+base_to_number(b,base);
//printf("%d",dec_sum);
number_to_base(dec_sum,base);
return 0;
}