Submission
Status:
P----PPPP
Subtask/Task Score:
60/100
Score: 60
User: Quaoar
Problemset: บวกเลขฐาน
Language: cpp
Time: 0.002 second
Submitted On: 2025-10-10 19:32:17
#include <stdio.h>
int pw(int a , int b){
int product = a;
if (b == 0){
return 1;
}
for (int i = 0 ; i < b - 1; i++){
product = product * a;
}
return product;
}
int main() {
int base;
char str1[20];
char str2[20];
scanf("%d" , &base);
scanf("%s" , str1);
scanf("%s" , str2);
int i = 0;
int len1 , len2;
while (str1[i] != '\0'){
i++;
len1 = i;
}
i = 0;
while (str2[i] != '\0'){
i++;
len2 = i;
}
int sum1 = 0 , sum2 = 0;
for (int i = 0 ; i < len1 ; i++){
if (str1[i] - '0' > 9){
sum1 += (str1[i] - '0' - 7) * pw(base , len1 - 1 -i);
} else {
sum1 += (str1[i] - '0') * pw(base , len1 - 1 - i);
}
}
for (int i = 0 ; i < len2 ; i++){
if (str2[i] - '0' > 9){
sum2 += (str2[i] - '0' - 7) * pw(base , len2 - 1 -i);
} else {
sum2 += (str2[i] - '0') * pw(base , len2 - 1 - i);
}
}
if (base <= 10){
int lowbase[20];
int dec = sum1 + sum2;
int cnt2;
for (int i = 0 ; i < 20 ; i++){
lowbase[i] = dec % base;
dec = dec / base;
if (dec == 0){
cnt2 = i;
break;
}
}
for (int i = 0 ; i < cnt2 + 1; i++){
printf("%d" , lowbase[cnt2 - i ]);
}
} else {
char highbase[20];
int dec = sum1 + sum2;
int cnt2;
for (int i = 0 ; i < 20 ; i++){
if (dec % base > 10){
highbase[i] = (char)((dec % base) + 55);
} else {
highbase[i] = (dec % base) + '0' ;
}
dec = dec / base;
if (dec == 0){
cnt2 = i;
break;
}
}
for (int i = 0 ; i < cnt2 + 1; i++){
printf("%c" , highbase[cnt2 - i ]);
}
}
return 0;
}