和之前那个一样。。
AC代码:
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn = 2000;
int palin[maxn], num = 0;
int is_palin(int n) //判断是否是回文数
{
if(n<100000)
{
if( (n/10000 == n%10) && (n/1000%10 == n/10%10) )
return 1;
}
else
{
if((n/100000 == n%10) && (n/10000%10 == n/10%10) && (n/1000%10 == n/100%10))
return 1;
}
return 0;
}
void init() //回文数打表
{
for(int i=10000; i<=999999; i++)
{
if(is_palin(i)) palin[num++] = i;
}
}
int fun(int n) //判断是否符合条件
{
int t = 0, m = n;
while(m)
{
t += m%10;
m /= 10;
}
return t;
}
int main()
{
init();
int n;
while(scanf("%d", &n) != EOF)
{
for(int i=0; i<num; i++)
{
if(fun(palin[i]) == n) printf("%d\n", palin[i]);
}
}
return 0;
}
原文地址:http://blog.csdn.net/u014355480/article/details/42065071