题解 | #进制转换#

进制转换

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

#include <unordered_map>
#include <algorithm>
#include <math.h>

using namespace std;

unordered_map<char, int> m = {
    {'0', 0},
    {'1', 1},
    {'2', 2},
    {'3', 3},
    {'4', 4},
    {'5', 5},
    {'6', 6},
    {'7', 7},
    {'8', 8},
    {'9', 9},
    {'A', 10},
    {'B', 11},
    {'C', 12},
    {'D', 13},
    {'E', 14},
    {'F', 15}
};

void process(string s, int& res){
    reverse(s.begin(), s.end());
    //cout<<s<<endl;
    for(int i = 0; i < s.size(); i++){
        res += m[s[i]] * pow(16, i);
        //cout<<res<<endl;
    }
}

int main(){
    string str = "";
    int res = 0;
    
    while(cin>>str){
        process(str, res);
    }
    
    cout<<to_string(res)<<endl;
    
    return 0;
}

华为题库题解 文章被收录于专栏

牛客华为题库的题解

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务