Submission
Status:
PPPPPPP-P
Subtask/Task Score:
96/100
Score: 96
User: Peam
Problemset: บวกเลขฐาน
Language: c
Time: 0.002 second
Submitted On: 2025-10-09 12:23:30
#include <stdio.h>
#include <string.h>
int main(){
int base;
scanf("%d", &base); //input base
char s1[100], s2[100];
scanf("%s%s", s1, s2);
//to base 10
int ans1 = 0, ans2 = 0;
for(int i = 0; s1[i] != '\0'; i++){
if(s1[i] >= 'A' && s1[i] <= 'Z'){
ans1 = base * ans1 + (s1[i] - 'A' + 10);
}
else{
ans1 = base * ans1 + (s1[i] - '0');
}
}
for(int i = 0; s2[i] != '\0'; i++){
if(s2[i] >= 'A' && s2[i] <= 'Z'){
ans2 = base * ans2 + (s2[i] - 'A' + 10);
}
else{
ans2 = base * ans2 + (s2[i] - '0');
}
}
//sum in base 10
int sum = ans1 + ans2;
//convert back to origninal base
int final_answer[100];
int idx = 0;
int len = 0;
while(sum > 0){
final_answer[idx++] = sum % base;
sum /= base;
len++;
}
// 11 + 55 -> 66 -> B
// printf("ans1: %d\nans2: %d", ans1, ans2);
for(int i = len - 1; i >= 0; i--){
if(final_answer[i] >= 10 && final_answer[i] <= 15){
printf("%c", final_answer[i] + 55);
}
else{
printf("%d", final_answer[i]);
}
}
return 0;
}