hdu2100Lovekey 字符串加法
hdu2100
使用strcpy可以提高效率
[cpp]
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
int main()
{
int i,j,alen,blen,len;
char x[210],y[210],ans[210];
while(scanf("%s%s",x+1,y+1)!=EOF)
{
//x去头
i=1;
while(x[i]=='A') i++;
strcpy(x+1,x+i);
alen=strlen(x+1); // printf("%s!%d\n",x+1,alen);
// for(i=1;i<=alen;i++) x[i]-='A';
//y去头
i=1;
while(y[i]=='A') i++;
strcpy(y+1,y+i);
blen=strlen(y+1);
// for(i=1;i<=blen;i++) y[i]-='A';
// printf("%s %s\n",x+1,y+1);
len=max(alen,blen); //alen+blen-len就是小的那个
ans[len+1]='\0';
for(i=1;i<=min(alen,blen);i++){
ans[len-i+1]=x[alen-i+1]+y[blen-i+1]-'A';
}
if(alen>blen)
for(i=alen-blen;i>0;i--) ans[i]=x[i];
else
for(i=blen-alen;i>0;i--) ans[i]=y[i];
for(ans[0]='A',i=len;i>0;i--)
if(ans[i]>'Z'){
ans[i]-=26;
ans[i-1]++;
}
if(ans[0]>'A') printf("%c",ans[0]);
if(strlen(ans+1)>0) printf("%s\n",ans+1);
else printf("A\n");
}
return 0;
}
补充:软件开发 , C++ ,