Lanqiaoカップの基本的な練習のための特別なpalindrome番号(Javaソリューション)

問題の説明

123321は非常に特殊な番号です。左から読み取るのは右から読み取るのと同じです。
正の整数nを入力し、各桁の合計がnに等しくなるように、そのような5桁および6桁の10進数をすべて検索するようにプログラムします。

入力フォーマット

正の整数nを含む行を入力します。

出力フォーマット

条件を満たす整数を昇順で出力し、各整数が1行を占めます。

サンプル入力

52

サンプル出力

899998
989989
998899

データサイズと規則

1 <= n <= 54。

簡単な実装

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

public class Main{
    
    
    public static void main(String[] args) {
    
    
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        for (int hw: hwNum(n)) {
    
    
            System.out.println(hw);
        }
    }

    /**
     * 五到六位特殊回文数
     * @return 特殊回文数列表
     */
    public static List<Integer> hwNum(int n){
    
    
        List<Integer> hws = new ArrayList<Integer>();
        for (int i = 10000; i < 1000000; i++) {
    
    
            String str = i + "";
            int flag = -1;
            int midIndex = str.length() / 2;
            for (int j = 0; j < midIndex; j++) {
    
    
                if(str.charAt(j) == str.charAt(str.length()-j-1)) flag = 1;
                else {
    
    
                    flag = -1;
                    break;
                }
            }

            if(flag == 1){
    
    
                int sum = 0;
                for (int j = 0; j < str.length(); j++) {
    
    
                    sum += Integer.parseInt(str.charAt(j)+"");
                }
                if(sum == n){
    
    
                    hws.add(i);
                }
            }
        }
        return hws;
    }
}

おすすめ

転載: blog.csdn.net/L333333333/article/details/103889578
おすすめ