题解 | #进制转换#

进制转换

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

    
}

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

全部评论

相关推荐

点赞 评论 收藏
分享
06-08 22:25
门头沟学院 Java
从零开始的转码生活:这hr不会打开手机不分青红皂白给所有人群发这句话,过一会再给所有人再发一遍,这肯定会有重复的,不管,再过一会再发一遍
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务