题解 | #进制转换#

进制转换

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

全部评论

相关推荐

头像
05-14 12:29
安卓
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务