这是一个题吧?就是将整数倒置,然后相加,判断是否回文,不是再倒置呗。10次还不是回文就报错
#include <stdio.h>
#include <string.h>
void r(char *a,int n,char *b)
{
for(int i=0;i<n;i++)
b[n-i-1] = a[i];
}
void add(char *a,int n,char *b)
{
int m = 0,a0,b0,c,j;
for(int i=n-1;i>=0;i--)
{
a0 = a[i] - '0';
b0 = b[i] - '0';
c = a0+b0;
a[i] = c%10 + '0';
if(c/10 > 0)
{
if(i==0)
{
m=1;
break;
}
for(j=i-1;j>=0;j--)
{
if(a[j] == '9')
{
a[j] = '0';
if(j==0)
{
m=1;
break;
}
}
else
{
a[j] += 1;
break;
}
}
}
}
if(m==1)
{
for(j=n;j>0;j--)
a[j] = a[j-1];
a[0] = '1';
}
}
int main()
{
char a[1002]={0}, b[1002] = {0};
int i;
gets(a);
for(i=0;i<10;i++)
{
int len = strlen(a);
r(a,len,b);
if(strcmp(a,b) == 0)
break;
printf("%s + %s = ",a,b);
add(a,len,b);
printf("%s\n",a);
}
if(i==10)
printf("Not Found in 10 iteration.");
else
printf("%s is a palindromic number.",a);
return 0;
}