码迷,mamicode.com
首页 > 其他好文 > 详细

蓝桥杯 - 回文数字 (字符串!!)

时间:2014-12-21 19:23:57      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

问题描述
  观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。

  本题要求你找到一些5位或6位的十进制数字。满足如下要求:
  该数字的各个数位之和等于输入的整数。
输入格式
  一个正整数 n (10<n<100), 表示要求满足的数位和。
输出格式
  若干行,每行包含一个满足要求的5位或6位整数。
  数字按从小到大的顺序排列。
  如果没有满足条件的,输出:-1
样例输入
44
样例输出
99899
499994
589985
598895
679976
688886
697796
769967
778877
787787
796697
859958
868868
877778
886688
895598
949949
958859
967769
976679
985589
994499
样例输入
60
样例输出
-1

 


思路:先把回文的序列的表打好,算出来正好就1800,所以我数组开的2000

然后从前到后扫一遍即可,满足条件就输出。。


AC代码:

    1. #include <cstdio>  
    2. #include <cstring>  
    3. #include <algorithm>  
    4. using namespace std;  
    5.   
    6. const int maxn = 2000;  
    7. int palin[maxn], num = 0;  
    8.   
    9. int is_palin(int n)    //判断是否是回文数   
    10. {  
    11.     if(n<100000)  
    12.     {  
    13.         if( (n/10000 == n%10) && (n/1000%10 == n/10%10) )  
    14.             return 1;  
    15.     }  
    16.     else  
    17.     {  
    18.         if((n/100000 == n%10) && (n/10000%10 == n/10%10) && (n/1000%10 == n/100%10))  
    19.             return 1;  
    20.     }  
    21.     return 0;  
    22. }  
    23.   
    24. void init()     //回文数打表   
    25. {  
    26.     for(int i=10000; i<=999999; i++)  
    27.     {  
    28.         if(is_palin(i)) palin[num++] = i;  
    29.     }   
    30. }  
    31.   
    32. int fun(int n)     //判断是否符合条件   
    33. {  
    34.     int t = 0, m = n;  
    35.     while(m)  
    36.     {  
    37.         t += m%10;  
    38.         m /= 10;  
    39.     }  
    40.     return t;  
    41. }  
    42.   
    43. int main()  
    44. {  
    45.     init();  
    46.     int n;  
    47.     while(scanf("%d", &n) != EOF)  
    48.     {  
    49.         if(n < 5 || n>54) { printf("-1\n"); continue; }  
    50.         for(int i=0; i<num; i++)  
    51.         {  
    52.             if(fun(palin[i]) == n) printf("%d\n", palin[i]);  
    53.         }  
    54.     }  
    55.     return 0;  
    56. }  

蓝桥杯 - 回文数字 (字符串!!)

标签:

原文地址:http://www.cnblogs.com/yuyanbian/p/4176865.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!