hdu2100Lovekey 字符串加法

来源:岁月联盟 编辑:exp 时间:2012-10-29

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; 

  

下一篇:HDU 2492