和之前那个一样。。
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