计蒜客练习题:回文数(C语言atoi函数使用)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 100
char a[MAX]={0};
char b[MAX]={0};
int f(int num)
{
int i=0,j,flag=0;
while(num>=10)
{
a[i] = num%10+'0';
num/=10;
i++;
}
a[i] = num+'0';
i = strlen(a);
for(j=0;j<(i/2);j++)
{
if(a[j]!=a[i-j-1])
{
flag=1;
break;
}
}
return flag;
}
int main()
{
int num1,num2,i,index=0,flag=0;
int change[MAX]={0};
scanf("%s",&a);
change[0] = atoi(a);
for(i=0;i<(strlen(a)/2);i++)
{
if(a[i]!=a[strlen(a)-i-1])
{
flag=1;
break;
}
}
if(flag)
{
do
{
num1 = atoi(a);
for(i=0;a[i]!='\0';i++)
{
b[i] = a[strlen(a)-i-1];
}
num2 = atoi(b);
num2+=num1;
change[++index]=num2;
}while(f(num2));
printf("%d\n",index);
printf("%d",change[0]);
for(i=1;i<=index;i++)
{
printf("--->%d",change[i]);
}
}
else
{
printf("%d\n",index);
printf("%s",a);
}
return 0;
}