题解 | #进制转换#
进制转换
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);
}
不知道这样实现效率怎么样
查看5道真题和解析