题解 | 进制转换
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
#include <iostream> #include <cmath> using namespace std; int solution(char c,int size,int n){ int digit_ascii = '1' - 1; int letter_ascii = 'F' - 15; if(c<='F'&&c>='A') return pow(16,size-n-1)*(c-letter_ascii); else if(c<='9'&&c>='0') return pow(16,size-n-1)*(c-digit_ascii); return 0; } int main() { string s = "\0"; cin >> s; string s1 = s.substr(2,s.size()); int ans = 0; int size = s1.size(); for(int i = 0;i<size;i++){ ans+=solution(s1[i],size,i); } cout<<ans; return 0; }