Submission

Status:

PPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: fienicl

Problemset: บวกเลขฐาน

Language: cpp

Time: 0.004 second

Submitted On: 2026-09-29 21:49:02

#include <iostream>
#include <cmath>
using namespace std;

int main(){
	int base, len1, len2, dec1 = 0, dec2 = 0,sumd;
	string num1, num2;
	cin >> base >> num1 >> num2;
	if(num1 == "0" && num2 == "0"){
		cout << "0";
		return 0;
	}
	len1 = num1.size();
	len2 = num2.size();
	for(int i = 0; i < len1; ++i){
		int power1;
		power1 = pow(base,(len1-i-1));
//		cout << power1 << " ";
		if(num1[i] == 'A'){
			dec1 += 10*power1;
		}
		else if(num1[i] == 'B'){
			dec1 += 11*power1;
		}
		else if(num1[i] == 'C'){
			dec1 += 12*power1;
		}
		else if(num1[i] == 'D'){
			dec1 += 13*power1;
		}
		else if(num1[i] == 'E'){
			dec1 += 14*power1;
		}
		else if(num1[i] == 'F'){
			dec1 += 15*power1;
		}
		else{
			dec1 += (num1[i]-48)*power1;
		}
	}
//	cout << dec1;
	for(int i = 0; i < len2; ++i){
		int power2;
		power2 = pow(base,(len2-i-1));
		if(num2[i] == 'A'){
			dec2 += 10*power2;
		}
		else if(num2[i] == 'B'){
			dec2 += 11*power2;
		}
		else if(num2[i] == 'C'){
			dec2 += 12*power2;
		}
		else if(num2[i] == 'D'){
			dec2 += 13*power2;
		}
		else if(num2[i] == 'E'){
			dec2 += 14*power2;
		}
		else if(num2[i] == 'F'){
			dec2 += 15*power2;
		}
		else{
			dec2 += (num2[i]-48)*power2;
		}
	}
	sumd = dec1+dec2;
//	cout << sumd;
	int sumd2;
	sumd2 = sumd;
	int lensum = 0;
	while(sumd != 0){
		sumd = sumd/base;
		++lensum;
	}
//	cout << lensum;
	int arr[lensum];
	char arr2[lensum];
	char a;
	for(int i = 0; i < lensum; ++i){
		arr[i] = sumd2 % base;
		if(arr[i] >= 10){//ABC
			a = arr[i] + 55;
			arr2[i] = a;
//			cout << arr2[i] << " ";
		}
		else{
//			cout << arr[i]+48;
			a = arr[i] + 48;
			arr2[i] = a;
//			cout << arr2[i] << " ";
		}
		sumd2/=base;
	}
	for(int i = lensum-1; i >= 0; --i){
		cout << arr2[i];
	}
}