题解 | #进制转换#

进制转换

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);

    
}

不知道这样实现效率怎么样

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务