题解 | #进制转换#

进制转换

http://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6

利用哈希表,从输入字符串的最后一位开始计算,计算到输入字符串的第三位
#include<bits/stdc++.h>
using namespace std;
int main()
{
    unordered_map<char, int> hexmap;
    hexmap.insert(make_pair('0', 0));
    hexmap.insert(make_pair('1', 1));
    hexmap.insert(make_pair('2', 2));
    hexmap.insert(make_pair('3', 3));
    hexmap.insert(make_pair('4', 4));
    hexmap.insert(make_pair('5', 5));
    hexmap.insert(make_pair('6', 6));
    hexmap.insert(make_pair('7', 7));
    hexmap.insert(make_pair('8', 8));
    hexmap.insert(make_pair('9', 9));
    hexmap.insert(make_pair('A', 10));
    hexmap.insert(make_pair('B', 11));
    hexmap.insert(make_pair('C', 12));
    hexmap.insert(make_pair('D', 13));
    hexmap.insert(make_pair('E', 14));
    hexmap.insert(make_pair('F', 15));
    string str;
    cin>>str;
    int len=str.size();
    int num=0;
    for(int i=len-1;i>1;i--)
    {
        num+=hexmap.find(str[i])->second*pow(16.0, (double)len-i-1);
    }
    cout<<num<<endl;
    return 0;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
04-08 05:32
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务