字符串的操作太弱了。。。。花了將近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;
}