首页 > 技术文章 > 【蓝桥杯】历届试题 回文数字

wuqianling 2016-04-06 15:47 原文

  历届试题 回文数字 
时间限制:1.0s   内存限制:256.0MB
    
问题描述
  观察数字: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
 
 
Java源代码:
 1 import java.util.Scanner;
 2 
 3 public class Main {
 4 
 5     public static void main(String[] args) {
 6         Scanner sc = new Scanner(System.in);
 7         int n = sc.nextInt();
 8         int[] a = new int[7];
 9         a[4] = 1;
10         boolean flag = false;
11         while (a[6] != 1) {
12             int k = 6;
13             while (a[k] == 0)
14                 k--;
15             boolean isHws = true;
16             for (int i = 0; i <= k; i++)// 搜索回文数
17             {
18                 if (a[i] != a[k - i]) {
19                     isHws = false;
20                     break;
21                 }
22             }
23             if (isHws)// 如果是回文数则看各位和是否等于N
24             {
25                 int sum = 0;
26                 for (int i = 0; i <= k; i++)
27                     sum += a[i];
28                 if (sum == n) {
29                     for (int i = 0; i <= k; i++)
30                         System.out.print(a[i]);
31                     System.out.println();
32                     flag = true;
33                 }
34             }
35             a[0]++;
36             k = 0;
37             while (a[k] >= 10)// 可以理解为“进位”
38             {
39                 a[k] -= 10;
40                 a[k + 1]++;
41                 k++;
42             }
43         }
44         if (!flag)
45             System.out.println("-1");
46     }
47 
48 }
评测点序号评测结果得分CPU使用内存使用下载评测数据
1 正确 20.00 296ms 24.29MB 输入 输出
2 正确 20.00 296ms 25.37MB 输入 输出
3 正确 20.00 234ms 23.78MB 输入 输出
4 正确 20.00 249ms 23.96MB 输入 输出
5 正确 20.00 171ms 23.86MB 输入 输出
 

推荐阅读