小白編程題:R進(jìn)制轉(zhuǎn)換為10進(jìn)制
描述
輸入一個(gè)R進(jìn)制的數(shù)N,將它轉(zhuǎn)換成10進(jìn)制數(shù)。
輸入
輸入數(shù)據(jù)包含多個(gè)測(cè)試實(shí)例,對(duì)于每組測(cè)試用例:
輸入兩個(gè)整數(shù) R(2 <= R <= 16, R ≠ 10)和 N (N的十進(jìn)制 <= 10^9) 。
輸出
輸出轉(zhuǎn)換后的數(shù),每個(gè)輸出占一行。
輸入樣例 1
8 123 8 -123 16 ABC
輸出樣例 1
83
-83
2748
代碼實(shí)現(xiàn)
#include <stdio.h>
#include <string.h>
int char_to_int(char c) {
if (c >= '0' && c <= '9') {
return c - '0';
} else if (c >= 'A' && c <= 'F') {
return c - 'A' + 10;
}
return 0;
}
int main() {
long long r;
char n[10000];
while (scanf("%lld %s", &r, n) != EOF) {
long long len = strlen(n);
long long sum = 0;
int start = (n[0] == '-') ? 1 : 0;
for (long long i = start; i < len; i++) {
sum = sum * r + char_to_int(n[i]);
}
if (n[0] == '-') {
printf("%lld\n", -sum);
} else {
printf("%lld\n", sum);
}
}
return 0;
}

浙公網(wǎng)安備 33010602011771號(hào)