Submission
Status:
PPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: Some1258
Problemset: บวกเลขฐาน
Language: cpp
Time: 0.002 second
Submitted On: 2025-10-12 18:24:58
#include <stdio.h>
#include <string.h>
int main(void){
int base;
char num1[50], num2[50];
scanf("%d %49s %49s", &base, num1, num2);
int val1 = strlen(num1);
int val2 = strlen(num2);
int num1val = 0;
int num2val = 0;
// convert num1 to int
int mult = 1;
for (int j = val1 - 1; j >= 0; j--) {
int d;
if (num1[j] >= '0' && num1[j] <= '9') d = num1[j] - '0';
else if (num1[j] >= 'A' && num1[j] <= 'Z') d = num1[j] - 'A' + 10;
num1val += d * mult;
mult *= base;
}
// convert num2 to int
mult = 1;
for (int j = val2 - 1; j >= 0; j--) {
int d;
if (num2[j] >= '0' && num2[j] <= '9') d = num2[j] - '0';
else if (num2[j] >= 'A' && num2[j] <= 'Z') d = num2[j] - 'A' + 10;
num2val += d * mult;
mult *= base;
}
int num3 = num1val + num2val;
char arr[100];
int count = 0;
if (num3 == 0) {
arr[count++] = '0';
} else {
while (num3 != 0) {
int temp = num3 % base;
char ch = (temp < 10) ? ('0' + temp) : ('A' + (temp - 10));
arr[count++] = ch;
num3 /= base;
}
}
for (int i = count - 1; i >= 0; i--) {
printf("%c", arr[i]);
}
printf("\n");
return 0;
}