题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
#include <iostream>
#include <string>
#include <cctype>
#include <cmath>
using namespace std;
// 输出描述有奇怪了 不是就输入一个 吗 为啥提到说用换行符隔开
int main() {
long long ans;
string d;
// while (cin >> a >> b) { // 注意 while 处理多个 case
// cout << a + b << endl;
// }
getline(cin, d);
int l = d.size();
for(int i=l-1; i>=2; i--)
{
int s = l-1 - i;
char ch = d[i];
// 字符转整型
long long chn;
if(!isalpha(ch)) // 是数字
{
chn = int(ch-'0'); // 坑在这里 字符到Int 这里不能 直接int() 那个是asicii2码
}
else
{
ch = tolower(ch);
chn = (ch - 'a')+10; // 类似的 相减 在传唤解码
}
ans += chn*pow(16., s);
}
cout<<ans;
}
// 64 位输出请用 printf("%lld")
