Submission

Status:

PPPPPPP-P

Subtask/Task Score:

96/100

Score: 96

User: uraniumconsumer

Problemset: บวกเลขฐาน

Language: cpp

Time: 0.004 second

Submitted On: 2026-10-03 14:58:15

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

int main(){
    int base;
    cin >> base;
    string num1;
    cin >> num1;
    string num2;
    cin >> num2;
    int num1base = 0;
    int num2base = 0;
    string hexchar = "ABCDEF";


        
    for(int i = 0; i < num1.length(); i++){
            int num3 = num1[i] - '0';
        for(int j = 0; j < hexchar.length(); j++){
            if(num1[i] == hexchar[j]){
                num3 = 10 + j;
            }
        }
        num1base += num3 * pow(base, num1.length()- i - 1);
    }
    for(int i = 0; i < num2.length(); i++){
            int num3 = num2[i] - '0';
        for(int j = 0; j < hexchar.length(); j++){
            if(num2[i] == hexchar[j]){
                num3 = 10 + j;
            }
        }
        num2base += num3 * pow(base, num2.length()- i - 1);
    }

    int sum = num1base + num2base;
    string finalsum = "";
    while(sum > 0){
        if(sum%base >= 10){
            finalsum = hexchar[sum%base - 10] + finalsum;
            sum = sum/base;
        }
        else{
            string rem = to_string(sum%base);
            finalsum = rem + finalsum;
            sum = sum/base;
        }
    }
    cout << finalsum;
    
    // 100 % 16 = 6 r. 4
    // 6 % 16 = 0 r. 6 
    // 64

    // for(int i = 0; i < num1.length(); i++){
    //     num1base += (num1[i] - '0') * (pow(base, num1.length() - i - 1));        
    // }
    // for(int j = 0; j < num2.length(); j++){
    //     num2base += (num2[j] - '0') * (pow(base, num2.length() - j - 1));
    // }
}