解题思路:
(1)注意字符串的长度大于2,依次乘以16,最后加上个位
#include <iostream>
#include <string>
using namespace std;
void getDecimal(const string &str) {
if(str.length()<=2) return;
int sum = 0,len = str.length();
for(int i=2;i<len-1;i++) {
if(str[i]>='A') sum = (sum+(str[i]-'A')+10)*16;
else sum = (sum+(str[i]-'0'))*16;
}
if(str[len-1]>='A') sum = sum+(str[len-1]-'A')+10;
else sum = sum+(str[len-1]-'0');
cout<<to_string(sum)<<endl;
}
int main() {
string str;
while(getline(cin,str)) {
getDecimal(str);
}
return 0;
}