Submission

Status:

P-PPPPP-P

Subtask/Task Score:

84/100

Score: 84

User: APNICHANAN

Problemset: บวกเลขฐาน

Language: c

Time: 0.002 second

Submitted On: 2025-09-23 22:15:53

#include <stdio.h>
#include <string.h>
#include <math.h>
int b;
int change(int n, char n1[n])
{
    int x10 = 0;
    for (int i = 0; i < n; i++)
    {
        if (n1[i] <= 57 && n1[i] >= 49)
        {
            x10 += (n1[i] - 48) * pow(b, n - i - 1);
        }
        else
        {
            x10 += (n1[i] - 55) * pow(b, n - i - 1);
        }
    }
    return x10;
}

int main()
{
    int base, sum, k, f = 0;
    char num1[50], num2[50];
    scanf("%d", &base);
    b = base;
    scanf("%s %s", num1, num2);
    sum = change(strlen(num1), num1) + change(strlen(num2), num2);
    for (int i = 0; i < 100; i++)
    {
        if (sum < pow(b, i))
        {
            k = i;
            break;
        }
    }
    int m[k];
    for (int i = 0; i < k; i++)
    {
        m[k - i - 1] = sum % b;
        sum = sum / b;
    }
    for (int i = 0; i < k; i++)
    {
        if (m[i] < 10 && m[i] >= 0)
        {
            printf("%d", m[i]);
        }
        else
        {
            char w = m[i] + 55;
            printf("%c", w);
        }
    }
}