华为03--进制转换

写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。

1.傻瓜式解法:

#include<iostream>
#include<string>
#include<unordered_map>
#include<cmath>
using namespace std;

/*
int main()
{
	string str = "";
	unordered_map<char, int> hashmap;
	char bit[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
	for (int i = 0; i < 16; ++i)
	{
		hashmap[bit[i]] = i;
	}

	while (cin >> str)
	{
		int bitn = 0;
		int ans = 0;
		for (int i = str.length()-1; i >=2; --i)
		{
			ans += hashmap[str[i]] * pow(16, bitn);
			++bitn;
		}
		printf("%d\n", ans);
	}

	return 0;

}

2.投机取巧,羞死人的解法

#include<iostream>
using namespace std;
int main()
{
	int x;
	while (scanf("%x",&x)!=EOF)//scanf(“格式控制字符串”, 地址表列);
		printf("%d\n", x);
	return 0;
}
全部评论

相关推荐

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