题解 | 进制转换

#include <cstddef>
#include <iostream>
#include <string>
using namespace std;
int HexToDec(char ch, int b);

int main() {
    string a;
    getline(cin, a);
    int count = 0;
    if (0 == a.find("0x")) {
        a.erase(0, 2);
    }
    for (size_t i=0; i<a.length(); i++) {
        count += HexToDec(a[i], a.length() - i - 1);
    }
    cout << count << endl;
}

int HexToDec(char ch, int b)
{
    if (0 == b) {
        if (ch >= 'A' && ch <= 'F') {
            return ch - 55;
        } else if (ch >= '0' && ch <= '9') {
            return ch - 48;
        }
    } else {
        return 16 * HexToDec(ch, b-1);
    }
    return 1;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

05-14 20:34
门头沟学院 Java
窝补药贝八股:管他们,乱说,反正又不去,直接说680
点赞 评论 收藏
分享
爱吃肉的伊登在写日记:好棒,27届简历能做成这个样子,但是第一个项目感觉cover住难度还是不小的,特别是二面的时候肯定要对分布式系统设计这一块儿有高出正常面试者的水平才行
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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