Submission
Status:
---------
Subtask/Task Score:
0/100
Score: 0
User: angpangSK
Problemset: บวกเลขฐาน
Language: c
Time: 0.003 second
Submitted On: 2025-09-23 12:03:23
#include <stdio.h>
#include <math.h>
#include <string.h>
void convert_to_base(int num, int base, char* result) {
int i = 0;
char digits[] = "0123456789ABCDEF";
if (num == 0) {
result[i++] = '0';
}
while (num > 0) {
result[i++] = digits[num % base];
num /= base;
}
result[i] = '\0';
for (int j = 0; j < i / 2; j++) {
char temp = result[j];
result[j] = result[i - j - 1];
result[i - j - 1] = temp;
}
}
int convert_to_base10(const char* num_str, int base) {
int num_base10 = 0;
int length = strlen(num_str);
for (int i = 0; i < length; i++) {
char digit = num_str[length - 1 - i];
int value = (digit >= '0' && digit <= '9') ? (digit - '0') : (digit - 'A' + 10);
num_base10 += value * pow(base, i);
}
return num_base10;
}
int main() {
int base;
printf("Base: ");
scanf("%d", &base);
char num1[100], num2[100];
printf("Num1: ");
scanf("%s", num1);
printf("Num2: ");
scanf("%s", num2);
if (base < 2 || base > 16) {
printf("Invalid base\n");
return 0;
}
int num1_base10 = convert_to_base10(num1, base);
int num2_base10 = convert_to_base10(num2, base);
int sum = num1_base10 + num2_base10;
char sum_base[100];
convert_to_base(sum, base, sum_base);
printf("OUTPUT %s\n", sum_base);
return 0;
}