下面给出一种最简单的解决方法。
#include<stdio.h>
int main()
{
long int i=10000;
int j,num;
long int n[6]={0};
printf("输入一个正整数:");
scanf("%d",&num);
while(i<100000) //先计算五位数的
{
if(i<=99999)
{
n[0]=i/10000;
n[1]=i%10000/1000;
n[2]=i%10000%1000/100;
n[3]=i%10000%1000%100/10;
n[4]=(i%10000%1000%100%10)%10;
if((n[0]==n[4])&&(n[1]==n[3]))
if(num==(n[0]+n[1]+n[2]+n[3]+n[4]))
printf("%d\n",i);
}
i++;
}
while(i<1000000) //接着计算六位数
{
n[0]=i/100000;
n[1]=i%100000/10000;
n[2]=i%100000%10000/1000;
n[3]=i%100000%10000%1000/100;
n[4]=i%100000%10000%1000%100/10;
n[5]=(i%100000%10000%1000%100%10)%10;
if((n[0]==n[5])&&(n[1]==n[4])&&(n[2]==n[3]))
if(num==(n[0]+n[1]+n[2]+n[3]+n[4]+n[5]))
printf("%ld\n",i);
i++;
}
return 0;
}