当前位置:编程学习 > C/C++ >>

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++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,