BASIC_9 特殊回文数

BASIC-9 特殊回文数

题目

问题描述

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

输入格式

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

输出格式

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

样例输入

52

样例输出

899998
989989
998899

数据规模和约定

1<=n<=54。

题解

import java.util.Scanner;
import java.util.ArrayList;

public class BASIC_9 {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        sc.close();
        ArrayList<String> list = new ArrayList<>();
        for (int i = 100; i < 1000; i++) {
            int a = i / 100;
            int b = i / 10 - a * 10;
            int c = i - a * 100 - b * 10;
            if (c + 2 * (a + b) == num)
                list.add(i + "" + b + a);
        }
        if (num % 2 == 0) {
	// 六位回文的和必是偶数 
            for (int i = 100; i < 1000; i++) {
                int a = i / 100;
                int b = i / 10 - a * 10;
                int c = i - a * 100 - b * 10;
                if (2 * (a + b + c) == num)
                    list.add(i + "" + c + b + a);
            }
        }
        for (String str : list)
            System.out.println(str);
    }
}
posted @ 2022-03-18 22:34  morning-start  阅读(36)  评论(0编辑  收藏  举报