Submission

Status:

---------

Subtask/Task Score:

0/100

Score: 0

User: spiwips

Problemset: บวกเลขฐาน

Language: c

Time: 0.002 second

Submitted On: 2025-10-12 13:23:40

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

int base_to_number(char a[],int base){
    int base_multiplier = 1;
    int sum = 0;
    for(int i = strlen(a)-2;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("%d",0);

    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--){
        printf("%c",res[i]);
    }
    
}



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