Submission

Status:

xxxxxxxxx

Subtask/Task Score:

0/100

Score: 0

User: erng

Problemset: บวกเลขฐาน

Language: cpp

Time: 0.003 second

Submitted On: 2025-09-26 15:15:48

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

int n, va, vb,k=1, num;
string a,b;
int ax[100], bx[100];
stack<char> e;

int main()
{
    cin>>n>>a>>b;
    for (int i=0; i<a.size(); i++)
    {
        if ('A'<=a[i] && a[i]<'Z')
        {
            ax[i]=(int)(a[i]-55);
        }
        else
        {
            ax[i]=a[i]-'0';
        }
    }
    for (int i=0; i<b.size(); i++)
    {
        if ('A'<=b[i] && b[i]<'Z')
        {
            bx[i]=b[i]-55;
        }
        else
        {
            bx[i]=b[i]-'0';
        }
    }
    for (int i=a.size()-1; i>=0; i--)
    {
        va=va+ax[i]*k;
        k=k*n;
    }
    k=1;
    for (int i=b.size()-1; i>=0; i--)
    {
        vb=vb+bx[i]*k;
        k=k*n;
    }
    num=va+vb;
    while (num>0)
    {
        k=num%n;
        if (k>9) e.push('A'+k-10);
        else e.push(k+'0');
        num=num/n;
    }
    while(e.size()>=0)
    {
        cout<<e.top();
        e.pop();
    }
}