题解 | #进制转换#
进制转换
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