万能法:
参考:https://blog.csdn.net/Jay98/article/details/114792107
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main(){
string a;
while(cin>>a){
a=a.substr(2);
int l=a.length();
int add,t;
string ans="";
for(int i=0;i<l;){
add=0;
for(int j=0;j<l;j++){
if(a[j]>='A'&&a[j]<='F')
t=add*16+a[j]-'A'+10;
else
t=add*16+a[j]-'0';
int temp=t/10;
if(temp<10){
a[j]=temp+'0';
}
else{
a[j]=temp-10+'A';
}
add=t%10;
}
// cout<<add<<endl;
ans+=add+'0';
while(a[i]=='0')
i++;
}
reverse(begin(ans),end(ans));
cout<<ans<<endl;
}
return 0;
}
简便法:
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main(){
string a;
while(cin>>a){
int l=a.length();
int ans=0,temp;
for(int i=2;i<l;i++){
if(a[i]>='A'&&a[i]<='F'){
temp=a[i]-'A'+10;
}
else{
temp=a[i]-'0';
}
ans=ans*16+temp;
}
cout<<ans<<endl;
}
return 0;
}