#include<stdio.h>
#include<string.h>
#include<math.h>
int ishuiwen(int num)
{
char str[10];
int i,n;
sprintf(str,"%d",num);
n=strlen(str);
for(i=0;i<n/2;i++)
{
if(str[i]!=str[n-i-1])
return 0;
}
return 1;
}
int add(int num)
{
int numbers[10],temp1=0,temp2=0,n=0,i;
temp2=num;
static int j=0;
while(num>=10)
{
numbers[n++]=num%10;
num/=10;
}
numbers[n++]=num;
for(i=0;i<n;i++)
{
temp1=temp1+numbers[i]*(int)pow(10,n-1-i);
}
j++;
i=j;
if(j>100)
{
j=0;//一定要注意清零
return -1;
}
if(ishuiwen(temp1+temp2))
{
j=0;//一定要注意清零
return i;
}
/*else if(j>100)
{
j=0;//一定要注意清零
return -1;
}*/
else
{
return add(temp1+temp2);
}
}
int main()
{
int n,i;
for(i=10;i<100;i++)
{
if(ishuiwen(i))
{
printf("%d是回文\n",i);
}
else
{
n=add(i);
if(n==-1)
{
printf("%d不满足猜测\n",i);
}
else
{
printf("%d经过%d次转化可以成为回文\n",i,n);
}
}
}
return 0;
}
C语言回文及其转化问题
最新推荐文章于 2022-08-19 23:12:57 发布