#include <iostream> using namespace std; int countBit(char c, int bit){ int res = 0; if(c >= '0' && c <= '9') res = c - '0'; if(c >= 'A' && c <= 'F') res = c - 'A' + 10; while(bit--) res *= 16; return res; } int coutTen(string s){ int len = s.length(); int res = 0; for(int i = 0; i < len; i++){ res += countBit(s[i], len - i -1); } return res; } int main() { string s; getline(cin, s); cout << coutTen(s) << endl; return 0; } // 64 位输出请用 printf("%lld")
一个主函数俩子函数,一个子函数用来算位权重相加的结果,一个用来算每一位数值,主函数输入输出