Número de palíndromo especial para ejercicios básicos
Descripción del problema
123321 es un número muy especial, leerlo desde la izquierda es lo mismo que leerlo desde la derecha.
Ingrese un entero positivo n, y programe para encontrar todos esos números decimales de cinco y seis dígitos para que la suma de cada dígito sea igual an.
Formato de entrada
Introduzca una línea que contenga un número entero positivo n.
Formato de salida
Imprima los enteros que cumplen las condiciones en orden ascendente, y cada entero ocupa una línea.
Entrada de muestra
52
Salida de muestra
899998
989989
998899
Tamaño de datos y convención
1 <= n <= 54。
Implementación simple
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;
}
}