题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
#include <stdio.h>
#include <string.h>
#include <math.h>
int main() {
char words[100];
int sum = 0;
int words_len = 0;
fgets(words, sizeof(words), stdin);
words_len = strlen(words);
for (int i = 2; i < words_len - 1; i++) {
if (words[i] >= 'A') {
sum = sum + (words[i] - '7') * pow(16, (words_len - i - 2));
// printf("%d", words[i] - '7');
} else
sum = sum + (words[i] - '0') * pow(16, (words_len - i - 2));
}
printf("%d", sum);
}
需要注意的是,A,B,C,D等字符转数字时,其与‘7’作差正好为10,11,12,13

查看8道真题和解析