paquete com.xiaozhao.coding;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
import java.util.Scanner;
public class GetNarcissisticNumbers {
@SuppressWarnings ("recurso")
public static void main (String [] args) { List <Integer> list1 = new ArrayList <Integer> (); Scanner scanner = new Scanner (System.in); System.out.println (" Ingrese el rango que necesita para consultar desde la potencia (por ejemplo, 100 --- n, la posición inicial predeterminada es 100): "); int n = scanner.nextInt (); for (int i = 100; i <= n ; i ++) { getNarcissisticNumbers (i); if (getNarcissisticNumbers (i) == i) list1.add (getNarcissisticNumbers (i)); } System.out.println ("En este rango, los números de potencia que consulta son:" + "\ n" + list1); } public static int GetCount (int n) { // Determine cuántos dígitos tiene n int s = n / 10;
int count = 1;
while (s> 0) { s = s / 10; count ++; } return count; } public static int sum (int n, int k) { // Encuentra el orden de conteo de cada número int sum = 1; final int h = n; for (int i = 0; i <h; i ++) { sum = sum * k; } return sum; } public static int jiechen (int k) { // Qué se necesita para cada número El factorial de la división (10) int num = 1; while (k> 0) { num = 10 * num; k--; } return num; }
public static int Getvalue (int n) { // toma el número obtenido después de int value = 0; int q = 1; int a = GetCount (n) -1; //System.out.println(a); while ( a> 0) { q = 10 * q; a--; } value = n / q; //System.out.println(value); return value; } public static int getNarcissisticNumbers (int n) { // Regresar para pasar El número después del cambio de energía List <Integer> list = new ArrayList <Integer> (); int k = GetCount (n); //System.out.println(k); for (int i = 1; i <2; i ++) {
list.add (sum (k, Getvalue (n)));
para (int j = k-1; j> 0; j--) { n = n% jiechen (j); GetCount (n); list.add (sum (k, Getvalue (n))); } } ListIterator <Integer> it = list.listIterator (); int sum2 = 0; while (it.hasNext ()) { int sum1 = it.next (); suma2 = suma2 + suma1; } //System.out.println(sum2); return sum2; } }