Submission

Status:
PPPPPPPPP

Score: 100

User: Angonnyyy

Problemset: บวกเลขฐาน

Language: cpp

Time: 0.001 second

Submitted On: 2024-10-03 16:22:20

#include<stdio.h>
#include<string.h>
#include<math.h>

int toten(char *num,int base){
	int con=0,i;
	int l = strlen(num);
	int p = l-1;
	for(i=0;i<l;i++){
		switch(num[i]){
			case'A':
				con+=10*pow(base,p);
				break;
			case'B':
				con+=11*pow(base,p);
				break;
			case'C':
				con+=12*pow(base,p);
				break;
			case'D':
				con+=13*pow(base,p);
				break;
			case'E':
				con+=14*pow(base,p);
				break;
			case'F':
				con+=15*pow(base,p);
				break;
			default:
				con+=(num[i]-48)*pow(base,p);
				break;
		}
		p--;
	}
	return con;
	
}


int main(){
	int base,num101,num102,out[9999],counter=0,mod,result,i=-1;
	char num1[101] , num2[101];
	scanf("%d %s %s",&base,num1,num2);
	num101 = toten(num1,base);
	num102 = toten(num2,base);
	int sum = num101+num102;
	int status =1;
	do{
		if(sum<base)status=0;
		i++;
		out[i] = sum%base;
		sum/=base;
		
	}while(status==1);
	
	for(i;i>=0;i--){
		switch(out[i]){
			case 10:
				printf("A");
				break;
			case 11:
				printf("B");
				break;
			case 12:
				printf("C");
				break;
			case 13:
				printf("D");
				break;
			case 14:
				printf("E");
				break;
			case 15:
				printf("F");
				break;
			default:
				printf("%d",out[i]);
				break;
		}
	}
}