程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> hdu2100Lovekey 字符串加法

hdu2100Lovekey 字符串加法

編輯:C++入門知識

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; 

  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved