Submission
Status:
PPPPPPPPP
Score: 100
User: mydKN
Problemset: บวกเลขฐาน
Language: c
Time: 0.002 second
Submitted On: 2024-10-14 21:41:51
#include<stdio.h>
int len(char str[]){
int i;
for(i=0;str[i]!='\0';++i);
return i;
}
int max(int a, int b){
if(a > b) return a;
return b;
}
int base;
char num1[1000], num2[1000];
int n1[1000], n2[1000];
int res[1000];
int main(){
scanf("%d", &base);
scanf("%s %s", num1, num2);
int cnt = 0;
int len1 = len(num1);
int len2 = len(num2);
for(int i=len1-1;i>=0;--i){
if(num1[i] <= 'Z' && num1[i] >= 'A') n1[cnt++] = num1[i]-55;
else n1[cnt++] = num1[i]-'0';
}
cnt = 0;
for(int i=len2-1;i>=0;--i){
if(num2[i] <= 'Z' && num2[i] >= 'A') n2[cnt++] = num2[i]-55;
else n2[cnt++] = num2[i]-'0';
}
// for(int i=0;i<cnt;++i) printf("%d ", n1[i]);
// printf("\n");
// for(int i=0;i<cnt;++i) printf("%d ", n2[i]);
int mx = max(len1, len2);
cnt = 0;
for(int i=0;i<mx;++i){
res[cnt] += (n1[i] + n2[i]);
if(res[cnt] >= base){
int x = res[cnt]/base;
res[cnt]-=(base*x);
res[cnt+1] += x;
if(i == mx-1) cnt++;
}
cnt++;
}
for(int i=cnt-1;i>=0;--i){
if(res[i] >= 10) printf("%c", res[i]+55);
else printf("%d", res[i]);
}
}
/*
16
12A
321
44B
5
24
32
61
*/