Submission

Status:

PPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: asd

Problemset: บวกเลขฐาน

Language: c

Time: 0.002 second

Submitted On: 2025-10-13 10:52:54

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


int tonum(char a){
	if(a>='0' && a<='9') return a -'0';
	if(a>='A' && a<='F') return a -'A'+10;
	if(a>='a' && a<='f') return a -'a'+10;
	return -1;
}

char tochar(int a){
	if(a<=9) return a +'0';
	return a + 'A'-10;
}





int main(){
	
	int base = 0;
	char num1[50];
	char num2[50];
	char numf[60];
	
	scanf("%d",&base);
	scanf("%s",num1);
	scanf("%s",num2);
	int i,j,k=0,carry=0,x,y;
	int le1 = strlen(num1);
	int le2 = strlen(num2);
	i =le1 -1 ;
	j = le2-1;
	while(i>=0||j>=0||carry>0){
		x = 0;
		if(i>=0){
			x = tonum(num1[i--]);
		}else{
			x=0;
		}
		y = 0;
		if(j>=0){
			y = tonum(num2[j--]);
		}else{
			y=0;
		}
		
		int sum = x+y+carry;
		carry = sum/base;
		sum %=base;
		numf[k++] = tochar(sum);
		
	}
	numf[k] = '\0';
	for(int i= 0;i< k;i++){
	printf("%c",numf[k-i-1]);
	}
	
	
	return 0;
}