Foro de elhacker.net

Programación => Ejercicios => Mensaje iniciado por: Kacoae en 16 Mayo 2013, 07:50 am



Título: Ayuda algoritmo en JAVA
Publicado por: Kacoae en 16 Mayo 2013, 07:50 am
Diseñe un algoritmo que imprima todos los números de 3 cifras (100 a 999) tales que la suma de los cubos de sus cifras, sea igual al numero.

EJEMPLO:
Ingresamos 225

Entonces separamos los tres números al cubo:
- 2^3 = 8
- 2^3 = 8
- 5^3 = 125

Sumamos los resultados:
125+8+8 = 141
No dio 225 (el numero original) o sea que ese no lo imprime.

-----------------------------

Agradezco su ayuda.
Gracias.


Título: Re: Ayuda algoritmo en JAVA
Publicado por: Nasty35 en 16 Mayo 2013, 15:07 pm
Código
  1. package test;
  2.  
  3. public class Test {
  4.  
  5. public static void main(String[] args) {
  6. char[] parse;
  7. int[] nums = new int[3];
  8. int[] finals = new int[3];
  9. for(int a = 100; a <= 999; a++) {
  10. parse = Integer.toString(a).toCharArray();
  11. for(int b = 0; b < 3; b++)
  12. nums[b] = Integer.parseInt(Character.toString(parse[b]));
  13. for(int b = 0; b < 3; b++)
  14. finals[b] = (int) Math.pow(nums[b], 3);
  15. if(finals[0] + finals[1] + finals[2] == a)
  16. System.out.println(a);
  17. }
  18. }
  19.  
  20. }

Output:
Código:
153
370
371
407

Espero que te haya servido :D


Título: Re: Ayuda algoritmo en JAVA
Publicado por: Kacoae en 16 Mayo 2013, 19:07 pm
Si mi amigo ya lo había hecho. Muchas gracias por su ayuda. No podía hacerlo antes por un duda que tenia.

Paso mi código por si algo o para que tengan otro método.

Código:
public static void main(String[] args) {
        int j,k,l,sum,h=100,i,m,n;
       
       
        do
        {
            j=h%10;
            k=(h/10)%10;
            l=h/100;
            i=j*j*j;
            m=k*k*k;
            n=l*l*l;
            sum=i+m+n;
                 
            if(sum==h)
                 {
                     System.out.println("El numero " + h + " cumple la condicion.");
                 }
         h=h+1;       
        }         
        while(h<=999);
    }
}