题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
#include <math.h> #include <stdio.h> #include <string.h> int main() { int res = 0; char str[10]; int len = 0; int m = 0; scanf("%s", &str); len = strlen(str); char* pEnd = str + len - 1; while(*pEnd != 'x'){ switch (*pEnd) { case 'F': res += 15 * pow(16, m); break; case 'E': res += 14 *pow(16, m); break; case 'D': res += 13 *pow(16, m); break; case 'C': res += 12 *pow(16, m); break; case 'B': res += 11 *pow(16, m); break; case 'A': res += 10 *pow(16, m); break; default: res += (*pEnd -48 ) *pow(16, m); break; } ++m; --pEnd; } printf("%lld", res); }
不知道这样实现效率怎么样