这道题本身不难,但要考虑好顺序,case后面注意加break
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
string s;
ll num;
int main(){
cin>>s;
ll sum=1;
for(int i=s.length()-1;i>=0;i--){
switch(s[i]){
case'1':num+=1*sum;break;
case'2':num+=2*sum;break;
case'3':num+=3*sum;break;
case'4':num+=4*sum;break;
case'5':num+=5*sum;break;
case'6':num+=6*sum;break;
case'7':num+=7*sum;break;
case'8':num+=8*sum;break;
case'9':num+=9*sum;break;
case'A':num+=10*sum;break;
case'B':num+=11*sum;break;
case'C':num+=12*sum;break;
case'D':num+=13*sum;break;
case'E':num+=14*sum;break;
case'F':num+=15*sum;break;
}
sum*=16;
}
printf("%lld\n",num);
return 0;
}