liuchuo / PAT

🍭 浙江大学PAT题解(C/C++/Java/Python) - 努力成为萌萌的程序媛~
3.37k stars 824 forks source link

[Advanced/C++/1010] Suggestion #132

Open xwcai98 opened 4 years ago

xwcai98 commented 4 years ago

问题: 在string转int64_t的时候,代码倒序计算,并使用了pow()函数。 pow()函数返回是double类型的,计算十分缓慢。 建议直接顺序处理:

auto to_num = [](char c) -> int64_t {
    if (isdigit(c)) return c - '0';
    return c - 'a' + 10;
};
int64_t res = 0;
for (auto e : str)
    res = res * radix + to_num(e);

另附的我的完整code,https://blog.csdn.net/abcdefbrhdb/article/details/104663704