[蓝桥] 基础练习 特殊回文数

问题描述

  123321是一个非常特殊的数,它从左边读和从右边读是一样的。
  输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。

输入格式

输入一行,包含一个正整数n。

输出格式

按从小到大的顺序输出满足条件的整数,每个整数占一行。

样例输入

52

样例输出

899998
989989
998899

数据规模和约定

1<=n<=54。

方法1:

 1 import java.util.Scanner;
 2 
 3 public class Main {
 4     public static void main(String[] args) {
 5         Scanner scanner = new Scanner(System.in);
 6         int n = scanner.nextInt();
 7         long sum;
 8         for(int i = 1;i <= 9;i++)
 9             for(int j = 0;j <= 9;j++)
10                 for(int k = 0;k <= 9;k++)
11                     if(2 * (i + j) + k == n) {
12                         sum = i * 10001 + j * 1010 + k * 100;
13                         System.out.println(sum);
14                     }
15         for(int i = 1;i <= 9;i++)
16             for(int j = 0;j <= 9;j++)
17                 for(int k = 0;k <= 9;k++)
18                     if(2 * (i + j + k) == n) {
19                         sum = i * 100001 + j * 10010 + k * 1100;
20                         System.out.println(sum);
21                     }
22     }
23 }

方法2:

 1 import java.util.Scanner;
 2 
 3 public class Main {
 4     public static void main(String[] args) {
 5         Scanner scanner = new Scanner(System.in);
 6         int n = scanner.nextInt();
 7         int[] arr = new int[6];
 8         for(int i=10001;i<=99999;i++) {
 9             int t = 0;
10             int s = i;
11             while(s != 0) {
12                 arr[t++] = s % 10;
13                 s /= 10;
14             }
15             int sum = 0;
16             for(int j = 0;j < 5;j++) {
17                 sum += arr[j];
18             }
19             if(sum == n) {
20                 int j;
21                 for(j = 0;j < 3;j++) {
22                     if(arr[j] != arr[4-j])
23                         break;
24                 }
25                 if(j == 3) {
26                     for(int k = 0;k < 5 ;k++) {
27                         System.out.print(arr[k]);
28                     }
29                     System.out.println();
30                 }
31             }
32         }
33         for(int i = 100001;i <= 999999;i++) {
34             int t = 0;
35             int s = i;
36             while(s != 0) {
37                 arr[t++] = s % 10;
38                 s /= 10;
39             }
40             int sum = 0;
41             for(int j = 0;j < 6;j++) {
42                 sum += arr[j];
43             }
44             if(sum == n) {
45                 int j;
46                 for(j = 0;j < 4;j++) {
47                     if(arr[j] != arr[5-j])
48                         break;
49                 }
50                 if(j == 4) {
51                     for(int k = 0;k < 6 ;k++) {
52                         System.out.print(arr[k]);
53                     }
54                     System.out.println();
55                 }
56             }
57         }
58     }
59 }

猜你喜欢

转载自www.cnblogs.com/youpeng/p/10349040.html