Submission

Status:

PPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: solarsunny

Problemset: บวกเลขฐาน

Language: cpp

Time: 0.002 second

Submitted On: 2025-09-26 22:10:19

#include <bits/stdc++.h>
using namespace std;

char tableau[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

int chartonum(char c) {
    switch (c)
    {
    case 'A':
        return 10;
    case 'B':
        return 11;
    case 'C':
        return 12;
    case 'D':
        return 13;
    case 'E':
        return 14;
    case 'F':
        return 15;
    default:
        return c-'0';
    }
}

int main() {
    int base=0;
    string num1,num2;
    cin >> base;
    cin >> num1;
    cin >> num2;
    string out="";
    int c=0;
    while (!(num1.empty()) or !(num2.empty()))
    {
        int n1 = 0;
        if (!num1.empty()) {
            n1 = chartonum(num1.back());
            num1.pop_back();
        }
        int n2 = 0;
        if (!num2.empty()) {
            n2 = chartonum(num2.back());
            num2.pop_back();
        }
        int n3 = n1+n2+c;
        c = n3/base;
        n3 = n3%base;
        out.push_back(tableau[n3]);
    }
    if(c!=0) {
        out.push_back(tableau[c]);
    }
    reverse(out.begin(),out.end());
    cout << out << "\n";
}