Submission

Status:
PPPPPPPPP

Score: 100

User: CyanZ

Problemset: บวกเลขฐาน

Language: c

Time: 0.002 second

Submitted On: 2024-10-16 15:54:46

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

char base[20] = "0123456789ABCDEF";

int main() {
    long long x;
    char num1[100];
    char num2[100];
    scanf("%lld %s %s",&x,num1,num2);
    long long m = strlen(num1);
    long long n = strlen(num2);
    
    long long frst = 0, sec = 0, find = 0;
    
    for (int i = 0; i < m; i++) {
        frst *= x;
        for (int j = 0; j < strlen(base); j++) {
            if (num1[i] == base[j]) {
                find = j;
                break;
            }
        }
        frst += find;
    }
    
    find = 0;
    
    for (int i = 0; i < n; i++) {
        sec *= x;
        for (int j = 0; j < strlen(base); j++) {
            if (num2[i] == base[j]) {
                find = j;
                break;
            }
        }
        sec += find;
    }
    
    long long sum = frst + sec;
    
    char result[100] = {};
    int i = 0;
    
    if (sum == 0) printf("0");
    
    while (sum != 0) {
        result[i] = base[sum%x];
        sum /= x;
        i++;
    }
    
    for (int i = strlen(result)-1; i >= 0; i--) {
        printf("%c",result[i]);
    }
    
    
    
    return 0;
}