Submission
Status:
PPPPPPP-P
Subtask/Task Score:
96/100
Score: 96
User: Neozaawwman1
Problemset: บวกเลขฐาน
Language: cpp
Time: 0.003 second
Submitted On: 2025-10-02 15:12:49
#include <bits/stdc++.h>
using namespace std;
int change(string n,int base){
int sum = 0;
int power = 0;
for(int i=n.length()-1; i>=0; i--){
if(n[i]=='A'){
sum+=10*pow(base,power);
power++;
}else if(n[i]=='B'){
sum+=11*pow(base,power);
power++;
}else if(n[i]=='C'){
sum+=12*pow(base,power);
power++;
}else if(n[i]=='D'){
sum+=13*pow(base,power);
power++;
}else if(n[i]=='E'){
sum+=14*pow(base,power);
power++;
}else if(n[i]=='F'){
sum+=15*pow(base,power);
power++;
}else{
int digit = n[i]-'0';
sum+=digit*pow(base,power);
power++;
}
}
return sum;
}
void changeback(int sum, int base){
vector<char> output;
while(sum>0){
int re = sum%base;
char hex;
if(re<10){
hex=re+'0';
}else{
hex = 'A'+(re-10);
}
output.push_back(hex);
sum=sum/base;
}
for(int i=output.size()-1; i>=0; i--){
cout<<output[i];
}
}
int main(){
string n1, n2;
int base;
cin>>base>>n1>>n2;
if(base>16 ||base<2){
return 0;
}
int num1 = change(n1,base);
int num2 = change(n2,base);
int sum = num1+num2;
changeback(sum,base);
return 0;
}