Submission
Status:
PPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: wasupum
Problemset: บวกเลขฐาน
Language: c
Time: 0.002 second
Submitted On: 2025-10-03 14:07:43
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
char ref[] = "0123456789ABCDEF";
int todec(char num[],int base){
int dec = 0;
size_t size = strlen(num)-1;
for(int i = 0 ; i <= size ; i++){
for(int j = 0 ; j < strlen(ref) ; j++){
if(num[i] == ref[j]){
dec += j * pow(base,size-i);
break;
}
}
}
return dec;
}
void tobase(int dec,int base,char* buffer){
char num[100];
int i = 0;
while(dec){
int n = dec % base;
if(n < 10)
num[i++] = n + '0';
else
num[i++] = n + 'A' - 10;
dec /= base;
}
num[i] = '\0';
for(int j = 0 ; j < i ; j++){
buffer[j] = num[i-j-1];
}
buffer[i] = '\0';
}
int main(void){
int base ;
char num1[100],num2[100];
scanf("%d %s %s",&base,num1,num2);
int dec1 = todec(num1,base);
int dec2 = todec(num2,base);
int sum = dec1 + dec2;
if(sum == 0)printf("0");
char res[100];
tobase(sum,base,res);
printf("%s\n",res);
return 0;
}