题解 | #进制转换#

进制转换

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

全部评论

相关推荐

纯真的河老师在喝茶:第一个是这个时间点岗位少,第二个是这个简历重复度太高了,10个有9个简历差不多的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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