Submission

Status:

---------

Subtask/Task Score:

0/100

Score: 0

User: spiwips

Problemset: บวกเลขฐาน

Language: c

Time: 0.002 second

Submitted On: 2025-10-12 14:09:34

#include<stdio.h>
#include<string.h>
#include<math.h>

int base_to_number(char a[],int base){
    int base_multiplier = 1;
    int sum = 0;
    int len = strlen(a);
    if (a[len-1] == '\n'){
        a[len-1] = '\0';
    } 
    len = strlen(a);
    for (int i = len - 1; i >= 0; i--){
        if(a[i]>='A'&&a[i]<='Z'){
            sum += (a[i]-55)*base_multiplier;
            base_multiplier*=base;
        }else{
            sum += (a[i]-48)*base_multiplier;
            base_multiplier*=base;
        }
    }
    return sum;
}

void number_to_base(int n, int base)
{
    if (n == 0) {
        printf("0");
        return;
    }

    char res[999];
    int i = 0;
    while(n > 0)
    {
        int curr = n % base;
        if(curr>=10){
            res[i] = curr+55;
            
        }else{
            res[i] = curr+48;
        }
        n/=base;
        i++;
    }
    for(i -= 1;i>=0;i--){
        if(res[i]=='\0'||res[i]=='\n'){
            continue;
        }
        printf("%c",res[i]);
    }
    
}



int main(){
    int base;
    char a[999],b[999];
    scanf("%d",&base);
    getchar();
    fgets(a,999,stdin);
    fgets(b,999,stdin);
    
    int dec_sum = base_to_number(a,base)+base_to_number(b,base);
    //printf("%d",dec_sum);
    number_to_base(dec_sum,base);
    return 0;
}