Java: ¿Cómo podemos verificar si un número es feliz o no mediante el uso de funciones de cadena simples y bucles sin ningún arreglo?

De acuerdo con Wikipedia,

Un número feliz es un número definido por el siguiente proceso: comenzando con cualquier número entero positivo, reemplace el número por la suma de los cuadrados de sus dígitos y repita el proceso hasta que el número sea igual a 1 (donde permanecerá), o bucles sin fin en un ciclo que no incluye 1. Los números para los que este proceso termina en 1 son números felices, mientras que los que no terminan en 1 son números infelices (o números tristes).

Y se observa que cada número infeliz finalmente queda atrapado en un bucle infinito al obtener el número 4 en él. Entonces, podemos romper el ciclo si la suma de los cuadrados de dígitos del número resulta ser 4, lo que indica que el número ingresado es un número infeliz.

import java.io. *;

clase pública HappyNumber {

public static void main (String [] args) lanza Exception {

BufferedReader br = new BufferedReader (nuevo InputStreamReader (System.in));

int número = Integer.parseInt (br.readLine ());

boolean isHappy = false;

while (verdadero) {

if (número == 1) {

isHappy = verdadero;

rotura;

}

int temp = 0;

while (número! = 0) {

temp = temp + (int) Math.pow ((número% 10), 2);

número / = 10;

}

if (temp == 4) {

rotura;

}

número = temp;

}

System.out.println (isHappy);

}

}

¡¡Espero que esto funcione para usted!! 🙂

public static void main (Cadena a []) {

while (verdadero) {

Escáner s = nuevo escáner (System.in);

System.out.println (“Ingrese un número”);

int num = s.nextInt ();

Establecer set = new HashSet <> ();

while (set.add (num)) {

num = findSumOfSquare (num);

}

if (num == 1) {

System.out.println (“Número feliz”);

}más{

System.out.println (“No es un número feliz”);

}

}

}

private static int findSumOfSquare (int num) {

int suma = 0;

while (num> 0) {

sum = sum + (int) Math.pow (num% 10, 2D);

num = num / 10;

}

suma de retorno;

}

Código probado y trabajado con éxito.