Submission
Status:
PPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: Whatthepoop
Problemset: บวกเลขฐาน
Language: c
Time: 0.001 second
Submitted On: 2025-10-10 23:48:36
#include <stdio.h>
#include <string.h>
int charToVal(char c) {
if(c >= '0' && c <= '9') {
return c - '0';
} else {
return c - 'A' + 10;
}
}
char valToChar(int v) {
if(v >= 0 && v <= 9) {
return '0' + v;
} else {
return 'A' + (v - 10);
}
}
int main() {
int base;
scanf("%d", &base);
char num1[100], num2[100];
scanf("%s %s", num1, num2);
int i = strlen(num1) - 1;
int j = strlen(num2) - 1;
int carry = 0;
char result[110];
int k = 0;
while(i >= 0 || j >= 0 || carry > 0) {
int x = 0;
int y = 0;
if(i >= 0) {
x = charToVal(num1[i]);
}
if(j >= 0) {
y = charToVal(num2[j]);
}
int sum = x + y + carry;
carry = sum / base;
sum = sum % base;
result[k] = valToChar(sum);
k++;
i--;
j--;
}
for(int a = 0; a < k / 2; a++) {
char t = result[a];
result[a] = result[k - 1 - a];
result[k - 1 - a] = t;
}
result[k] = '\0';
printf("%s\n", result);
return 0;
}