Submission
Status:
PPPPPPP-P
Score: 96
User: Nagorn
Problemset: บวกเลขฐาน
Language: cpp
Time: 0.002 second
Submitted On: 2024-10-14 12:28:36
#include <stdio.h>
#include <string.h>
int power(int a, int n){
if(!n) return 1;
return a * power(a, n-1);
}
int bas(char a[], int b){
int ans = 0;
int idx = 0;
for(int i = strlen(a) - 1; i >= 0; i--){
int num;
if(a[i] >= 'A') num = (a[i] - 'A') + 10;
else num = a[i] - '0';
ans += num * power(b, idx);
idx++;
}
return ans;
}
int main(){
int base;
scanf("%d",&base);
char a[101], b[101];
scanf("%s %s",a,b);
// printf("%d %d", strlen(a), strlen(b));
int x,y;
x = bas(a, base);
y = bas(b, base);
// printf("%d %d %d", x, y, x + y);
int z = x + y;
int ans[105];
int idx = 0;
while(z){
int mod = z % base;
// printf("%d ", mod);
z /= base;
ans[idx] = mod;
idx++;
}
// printf("\n");
for(int i = idx - 1; i >= 0; i--){
if(ans[i] < 10) printf("%d", ans[i]);
else printf("%c", (ans[i] - 10) + 'A');
}
}