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;
}