Submission
Status:
PPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: kimza
Problemset: บวกเลขฐาน
Language: c
Time: 0.002 second
Submitted On: 2025-10-13 15:57:02
#include <stdio.h>
int power(int n,int m){
int product = 1;
if(m==0){
return 1;
}
else{
for(int i=0;i<m;i++){
product *= n;
}
return product;
}
}
char checkchar(int n){
if(n>=0&&n<=9){
return n+'0';
}
else if(n==10){
return 'A';
}
else if(n==11){
return 'B';
}
else if(n==12){
return 'C';
}
else if(n==13){
return 'D';
}
else if(n==14){
return 'E';
}
else if(n==15){
return 'F';
}
return '?';
}
void convertbase(int sum,int base){
char basenum[100];
int count = 0;
if(base == 0 || sum == 0){
printf("0");
}
else{
while(sum!=0){
basenum[count] = checkchar(sum%base);
sum/=base;
count++;
}
for(int i=count-1;i>=0;i--){
printf("%c",basenum[i]);
}
}
}
int main(){
int base;
scanf("%d",&base);
char n1[100],n2[100];
scanf("%s %s",n1,n2);
//turn num1 & 2 into base 10 first (dec)
// num1
int num1[100];
int count1 = 0;
int sum1 = 0;
for(int i=0;n1[i]!='\0';i++){
if(n1[i]>='0'&&n1[i]<='9'){
num1[i] = n1[i]-48;
}
else if(n1[i]>='A'&&n1[i]<='F'){
num1[i] = n1[i]-55;
}
count1++;
}
for(int i=0;i<count1;i++){
sum1+=num1[i]*power(base,count1-i-1);
}
int num2[100];
int count2 = 0;
int sum2 = 0;
for(int i=0;n2[i]!='\0';i++){
if(n2[i]>='0'&&n2[i]<='9'){
num2[i] = n2[i]-48;
}
else if(n2[i]>='A'&&n2[i]<='F'){
num2[i] = n2[i]-55;
}
count2++;
}
for(int i=0;i<count2;i++){
sum2+=num2[i]*power(base,count2-i-1);
}
int sum = sum1+sum2;
// convert back to base;
convertbase(sum,base);
return 0;
}