Submission
Status:
PPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: I_am_me
Problemset: บวกเลขฐาน
Language: c
Time: 0.003 second
Submitted On: 2025-10-12 11:47:50
#include <stdio.h>
#include <string.h>
long long poww(int n, int m) {
long long power = 1;
for(int i = 0;i<n;i++) power*=m ;
return power;
}
long long n_to_ten(char num[],int a) {
//?ŧ?繰ҹ 10
//????ѡ
int lena = strlen(num) ;
long long nb10 = 0 ;
//?ŧ
for(int i = 0;i<lena;i++) {
if(num[i]<=57 && num[i]>=48) nb10 += (num[i]-48)*poww(lena-i-1,a) ;
else if (num[i]>=65 && num[i]<=90) nb10 += (num[i]-55)*poww(lena-i-1,a) ;
}
return nb10 ;
}
void ten_to_n(long long nb10, int x){
//?ŧ?繰ҹ x
if (nb10 == 0) {
printf("0");
return ;
}
//????ѡ
int count = 0;
long long nbtran = nb10 ;
while(nbtran>0) {
nbtran/=x ;
count++ ;
}
char nbx[count] ;
int i = 0;
while (nb10>0) {
if (nb10%x < 10) nbx[i] = nb10%x+'0' ;
else if (nb10%x >= 10) nbx[i] = nb10%x+'A'-10 ;
nb10=(nb10-nb10%x)/x ;
i++ ;
}
for(int i = count-1;i>=0;i--) printf("%c",nbx[i]) ;
}
int main(){
int a,x,ch ;
char num[76], num1[76] ;
scanf("%d %s %s",&a,num,num1) ;
ten_to_n(n_to_ten(num,a)+n_to_ten(num1,a),a) ;
return 0;
}