Java - Alguna forma de mejorar esta solucion?Armstrong

 
Vista:
Imágen de perfil de Ivan
Val: 20
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Alguna forma de mejorar esta solucion?Armstrong

Publicado por Ivan (11 intervenciones) el 14/08/2019 22:37:28
Captura2
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 194
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Alguna forma de mejorar esta solucion?Armstrong

Publicado por joel (59 intervenciones) el 15/08/2019 08:14:37
Seria mejor que pegaras el código para poder copiarlo y hacer pruebas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Ivan
Val: 20
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Alguna forma de mejorar esta solucion?Armstrong

Publicado por Ivan (11 intervenciones) el 15/08/2019 14:51:02
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public static void Armstrong() {
        Scanner sc = new Scanner(System.in);
 
        System.out.println("Introduce un número por pantalla: ");
        String num = sc.nextLine();
        //Descompongo el String en caracteres
        char c1 = num.charAt(0);
        char c2 = num.charAt(1);
        char c3 = num.charAt(2);
        //Paso a String cada caracter independiente
        String s1 = Character.toString(c1);
        String s2 = Character.toString(c2);
        String s3 = Character.toString(c3);
        //Paso a int cada String independiente
        int i1 = Integer.parseInt(s1);
        int i2 = Integer.parseInt(s2);
        int i3 = Integer.parseInt(s3);
        //Calculo la potencia de cada cifra
        int r1 = (int) Math.pow(i1, 3);
        int r2 = (int) Math.pow(i2, 3);
        int r3 = (int) Math.pow(i3, 3);
        //Sumo el resultado de las potencias
        int rFinal = r1 + r2 + r3;
        //Paso a string el resultado 
        String valorFinal = Integer.toString(rFinal);
 
        if (valorFinal.equalsIgnoreCase(num)) {
            System.out.println("Es un numero Armstrong");
        } else {
            System.out.println("No es un numero Armstrong");
        }
 
    }
 
    public static void main(String[] args) {
        Armstrong();
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 144
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Alguna forma de mejorar esta solucion?Armstrong

Publicado por Thanatos (97 intervenciones) el 15/08/2019 09:33:04
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import java.util.Scanner;
 
class Ejercicio9 {
 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
 
        System.out.print("Ingrese un numero: ");
        String cadena = sc.nextLine();
        sc.close();
 
        if (esArmstrong(cadena)) {
            System.out.println("Es Armstrong");
        } else {
            System.out.println("No es Armstrong");
        }
    }
 
    private static boolean esArmstrong(String cadena) {
        int nDigitos = cadena.length();
        int suma = 0;
 
        for (int i = 0; i < nDigitos; ++i) {
            int digito = Character.getNumericValue(cadena.charAt(i));
            suma += (int) Math.pow(digito, nDigitos);
        }
 
        return Integer.parseInt(cadena) == suma;
    }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar