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;
}