模拟题。
16进制转化为10进制相加。toupper函数为小写转换为大写,isalpha函数判断是否为字母。
#include<cstdio> #include<cstring> #include<cctype> using namespace std; const int maxn = 100 + 10; const int base = 16; char s[5][maxn]; int a,b; int trans(int m) { int ans=0,n=strlen(s[m]); for(int i=0;i<n;i++) { if(isalpha(s[m][i])) { s[m][i]=toupper(s[m][i]); ans+=(s[m][i]-‘A‘+10); } else ans+=(s[m][i]-‘0‘); ans*=base; } ans/=base; return ans; } int main() { while(scanf("%s",s[1])!=EOF) { scanf("%s",s[2]); a=trans(1); b=trans(2); printf("%d\n",a+b); } return 0; }
时间: 2024-10-09 20:58:01