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