Submission

Status:

---------

Subtask/Task Score:

0/100

Score: 0

User: angpangSK

Problemset: บวกเลขฐาน

Language: c

Time: 0.002 second

Submitted On: 2025-09-23 11:59:37

#include <stdio.h>
#include <math.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 main() {
    int base;
    printf("Base: ");
    scanf("%d", &base);

    int num1, num2;
    printf("Num1 ");
    scanf("%d", &num1);
    printf("Num2 ");
    scanf("%d", &num2);

    if (base == 10) {
        printf("OUTPUT %d\n", num1 + num2);
        return 0;
    }

    int num1_base10 = 0, num2_base10 = 0;
    int i = 0;
    while (num1 > 0) {
        num1_base10 += (num1 % 10) * pow(base, i);
        num1 /= 10;
        i++;
    }

    i = 0;
    while (num2 > 0) {
        num2_base10 += (num2 % 10) * pow(base, i);
        num2 /= 10;
        i++;
    }

    int sum = num1_base10 + num2_base10;
    char sum_base[100];

    convert_to_base(sum, base, sum_base);

    printf("OUTPUT %s",sum_base);

    return 0;
}