Submission
Status:
---------
Subtask/Task Score:
0/100
Score: 0
User: wasupum
Problemset: บวกเลขฐาน
Language: c
Time: 0.003 second
Submitted On: 2025-10-03 14:05:36
#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;
printf("%d\n%d\n",dec1,dec2);
char res[100];
tobase(sum,base,res);
printf("%s\n",res);
return 0;
}