http://acm.hdu.edu.cn/showproblem.php?pid=1720
wa看不出哪里错了
#include<stdio.h> #include<string.h> int main() { int a[1000],b[1000],sum[1010],i,j,len,s,k,l; char sa[1000],sb[1000]; while(scanf("%s %s",sa,sb)!=EOF) { for(i=0;i<1000;i++) sum[i]=0; for(i=strlen(sa);i>=0;i--) { if(sa[i]>='a') a[i]=sa[i]-'a'+10; else if(sa[i]>='A') a[i]=sa[i]-'A'+10; else a[i]=sa[i]-'0'; } for(i=strlen(sb);i>=0;i--) { if(sb[i]>='a') b[i]=sb[i]-'a'+10; else if(sb[i]>='A') b[i]=sb[i]-'A'+10; else b[i]=sb[i]-'0'; } i=j=k=0; while(i<strlen(sa)||j<strlen(sb)) { if(i==strlen(sa)) sum[k]=b[j++]; else if(j==strlen(sb)) sum[k]=a[i++]; else sum[k]=a[i++]+b[j++]; k++; } if(strlen(sa)>strlen(sb)) l=strlen(sa)-1; else l=strlen(sb); for(i=0;i<l;i++) if(sum[i]>15) { sum[i+1]++; sum[i]-=16; } while(sum[l]>15) { sum[l+1]++; sum[l]-=16; l++; } s=sum[l]; while(l--) s=s*16+sum[l]; printf("%d\n",s); } return 0; }
超简单代码,原来可以直接输入
#include <stdio.h> int main() { int a,b; while(scanf("%x%x",&a,&b)!=EOF) { printf("%d\n",a+b); } return 0; }