输入
输入数据包含多个测试实例,对于每组测试用例:
输入两个整数 R(2 <= R <= 16, R ≠ 10)和 N (N的十进制 <= 10^9) 。
输出
输出转换后的数,每个输出占一行。
输入样例 1
8 123 8 -123 16 ABC
输出样例
83 -83 2748
#include <stdio.h>
#include <string.h>
#include <math.h>
void Base_conversion(int R, char N[]) {
int len =strlen(N);
long long result=0;
int power=0;
int f = 0;
if (N[0] =='-') {
f = 1;
}
for (int i=len-1; i>=f; i--) {
int num =0;
if (N[i] >='0'&& N[i] <= '9') {
num = N[i]-'0';
}
else if (N[i] >='A'&& N[i] <= 'F') {
num = N[i] -'A' + 10;
}
result= result+num*(int)pow(R, power);
power++;
}
if (f==1) {
result = -result;
}
printf("%lld\n", result);
}
int main() {
int R;
char N[30];
while (scanf("%d %s", &R, N)==2) {
Base_conversion(R, N);
}
return 0;
}