Submission
Status:
PPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: erng
Problemset: บวกเลขฐาน
Language: cpp
Time: 0.003 second
Submitted On: 2025-09-26 15:21:25
#include <bits/stdc++.h>
using namespace std;
int n, va, vb,k=1, num;
string a,b;
int ax[1000], bx[1000];
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;
if (num==0)
{
cout<<0;
return 0;
}
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();
}
}