华为机试题分析 5 进制转换
Posted CodeAllen2022
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为机试题分析 5 进制转换相关的知识,希望对你有一定的参考价值。
描述
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
数据范围:保证结果在 1 \\le n \\le 2^31-1 \\1≤n≤231−1
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。不同组的测试用例用\\n隔开。
示例1
输入:0xAA
输出:170
这题用C语言的小伙伴一看到可能会有点蒙,这还需要算法逻辑?直接输出不就完啦,是的,这就是C语言最简单的思路
#include <stdio.h>
#include <string.h>
int main()
int num = 0;
while(scanf("%i\\n", &num) != -1)
printf("%d\\n", num);
return 0;
但是这题的目的肯定还是想考察对于字符串的处理
#include<stdio.h>
#include<string.h>
int main()
char a[1000];
scanf("%s", a);
int i = 0, n = 0, sum = 0;
int len = strlen(a);
for (i = 2; i < len; i++)
if (a[i] >= '0' && a[i] <= '9')
n = a[i] - '0';
else if (a[i] >= 'A' && a[i] <= 'F')
n = a[i] - 'A' + 10;
sum = sum * 16 + n;
printf("%d", sum);
return 0;
以上是关于华为机试题分析 5 进制转换的主要内容,如果未能解决你的问题,请参考以下文章