题解 | #进制转换#

进制转换

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

这个思路就和最开始想的一样 注意:

当s[i]在0~9之间的时候,s[i] >= '0' && s[i] <= '9' 而s[i]在10~15之间的时候s[i] >= 'A' && s[i] <= 'F'

#include <bits/stdc++.h>
using namespace std;

int converseNum(string s) {
    int bit = 0;//记录当前位数
    int res = 0;
    for(int i = s.length() - 1; i > 1; i--) {
        if(s[i] >= '0' && s[i] <= '9') {
            res += (s[i] - '0') * pow(16, bit);
            bit++;
        }
        else if(s[i] >= 'A' && s[i] <= 'F') {
            res += (s[i] - 'A' + 10) * pow(16, bit);
            bit++;
        }
    }
    return res;
}



int main() {
    string s;
    getline(cin,s);
    cout<< converseNum(s)<<endl;
    return 0;
}

全部评论

相关推荐

运营你豪哥:简历改改吧-非本、求职意向技术岗、无实习经历、内容空洞 如果简历不爆改的话,应该是会持续崩溃了 1.把你教育经历放最下面去 2.蓝底照片很奇怪哈,感觉还在高中时代,建议白底重新拍一下 3.校园经历没啥必要,收集和反馈同学们对产品的意见,解决学生和老师之间的沟通,企业招聘不看这些哈 好好思考一下简历的设计和你要表达的重点,再去投简历
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务