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.
package test;
public class Test {
public static void main(String[] args) {
char[] parse;
int[] nums = new int[3];
int[] finals = new int[3];
for(int a = 100; a <= 999; a++) {
parse = Integer.toString(a).toCharArray();
for(int b = 0; b < 3; b++)
nums[b] = Integer.parseInt(Character.toString(parse[b]));
for(int b = 0; b < 3; b++)
finals[b] = (int) Math.pow(nums[b], 3);
if(finals[0] + finals[1] + finals[2] == a)
System.out.println(a);
}
}
}
Output:
153
370
371
407
Espero que te haya servido :D
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.
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);
}
}