首页 > 代码库 > hdu ACM Steps 1.2.3 A+B Coming

hdu ACM Steps 1.2.3 A+B Coming

模拟题。

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;    
}

hdu ACM Steps 1.2.3 A+B Coming