Supongo que este es uno de los problemas de SPOJ.com – Problema HPYNOS.
Aquí hay una forma de hacerlo: use una estructura de datos llamada HashMap que facilite las cosas. Para saber sobre H ashMap, consulte aquí Java The HashMap Class
- Escribe un método para agregarSquaresofDigits
- Use hashmap para almacenar los resultados del método anterior. Si el resultado ya está en el mapa, entonces no puede ser un número feliz.
- En el ejemplo a continuación llega a 20 y luego nuevamente a 4, nunca llegará a 1. Por lo tanto, no puede ser un número feliz. En este contexto, el mapa viene a nuestro rescate.
204 -> 20 -> 4 -> 16 -> 37 -> 58 -> 89 -> 145 -> 42 -> 20 -> 4
- Código en Java:
import java.io.BufferedReader; import java.io.InputStreamReader; importar java.util.HashMap; import java.util.Map; Prueba de clase pública { // Método para agregar cuadrados de dígitos en el número static int addSquaresofDigits (int n) { int rem, suma = 0; mientras que (n! = 0) { rem = n% 10; suma = suma + rem * rem; n = n / 10; } suma de retorno; } public static void main (String [] args) lanza Exception { // TODO Código auxiliar de método generado automáticamente BufferedReader br = new BufferedReader (nuevo InputStreamReader (System.in)); int T = Integer.parseInt (br.readLine ()), count = 0, sum = 0, flag = 0, rem, temp; Map map = new HashMap (); // Para verificar si el mapa ya contiene el resultado. while (! map.containsKey (T)) { temp = T; sum = addSquaresofDigits (T); map.put (temp, sum); T = suma; recuento ++; // Si la suma es 1, entonces es un número feliz. if (suma == 1) { bandera = 1; rotura; } } System.out.println (flag == 1? "Número feliz" + "Se necesita" + cuenta + "para el proceso": "No es un número feliz"); } }
- ¿Cómo cuadrarías cada elemento en una matriz ordenada de enteros ascendentes mientras mantienes el orden?
- ¿Qué tipo de preguntas se hacen en la prueba de análisis Flipkart?
- ¿Es inusual que una publicación de trabajo le solicite que realice y les envíe el código fuente de una aplicación web básica?
- ¿Las preguntas de entrevistas de software en las principales compañías tecnológicas están específicamente diseñadas para sesgar a los programadores más jóvenes (que aún recuerdan los conceptos teóricos en detalle)?
- ¿Hay algún blog sobre preguntas de entrevistas de programación?