Submission

Status:

PPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: Bunkoblong

Problemset: บวกเลขฐาน

Language: cpp

Time: 0.003 second

Submitted On: 2025-10-03 17:01:34

#include<iostream>
#include<string>
#include<math.h>
using namespace std;
int main(){
    int B;
    string Base1;
    string Base2;
    char res[100];
    char ref[]="0123456789ABCDEF";
    int dec1=0;
    int dec2=0;
    int sum;
    int i=0;

    cin>>B>>Base1>>Base2;
    
    if(Base1=="0"&&Base2=="0"){
    cout<<0;
    }
    
    int n1=Base1.size();
    int n2=Base2.size();
    
    for(int i=0;i<n1;i++){
        for(int j=0;j<16;j++){
            if(Base1[i]==ref[j]){
                dec1+=j*pow(B,n1-i-1);
            }
        }
    }
    for(int i=0;i<n2;i++){
        for(int j=0;j<16;j++){
            if(Base2[i]==ref[j]){
                dec2+=j*pow(B,n2-i-1);
            }
        }
    }
    sum=dec1+dec2;
    
    while(sum>0){
        int a=sum%B;
        if(a<10){
            res[i++]=a+'0';
        }else{
            res[i++]=a-10+'A';
        }
    sum/=B;
    }
    for(int j=i-1;j>=0;j--){
        cout<<res[j];
    }
}