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

hdu1282回文数猜想

 
字符串的操作太弱了。。。。花了将近3个小时,还好一次就过了 不然真的会疯掉
 
 
[cpp] 
#include<iostream> 
using namespace std; 
 
int main() 

    char x[20],y[20],t[100][20]; 
    int i,j,num,len,n; 
    while(scanf("%s",x)!=EOF) 
    { 
        num=0; 
        while(1) 
        { 
            strcpy(t[num],x); 
            len=strlen(x); 
            for(i=0;i<len;i++)   y[len-1-i]=x[i];    y[len]='\0';   //翻转  
             
            if(strcmp(x,y)==0)  break;                           //不相等  
            num++;                                        //相加次数+1  
             
            for(i=0;i<len;i++)  x[i]+=y[i]-'0';       //相加 ,得到新的x 
        //  printf("!!相加后x=%s\n",x); 
            for(i=len-1;i>0;i--) 
                if(x[i]>'9') 
                { 
                    x[i-1]++; 
                    x[i]-=10; 
                } 
            if(x[0]>'9') 
            { 
                x[0]-=10; 
                for(i=len;i>0;i--) 
                    x[i]=x[i-1]; 
                x[0]='1'; 
                x[len+1]='\0'; 
            } 
             
        //  printf("!!进位后x=%s\n",x); 
        //  system("pause"); 
        } 
        printf("%d\n%s",num,t[0]); 
        for(i=1;i<=num;i++) 
            printf("--->%s",t[i]); 
        printf("\n"); 
    } 
     
    return 0; 

补充:软件开发 , C++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,