Autor Tema: calcular factorial de un número con java usando bucle for  (Leído 19622 veces)

xtc3

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 25
    • Ver Perfil
Antes de nada agradecer una vez mas su ayuda ya que me están ayudando muchisimo y estoy aprendiendo mucho de todos vosotros. :)

Estoy intentando hacer un problema para que me devuelva el factorial de un numero pero me devuelve mas de lo que quiero, me gustaria que me devolviera el factorial del numero 5 pero me devuelve 600 cuando 5*4*3*2*1 da como resultado 120.

Este es el código aver si me pueden decir a que se debe.

Código: [Seleccionar]
public class factorial {

/**
* EN ESTE EJERICIO VAMOS A TRABAJAR EL FUNCIONAMIENTO DE LOS METODOS
* VAMOS A OBTENER EL FACTORIAL DE UN NUMERO
*/


//definimos el metodo

public double producto (int n) { //LE PASAMOS UN ENTERO COMO ARGUMENTO
double resultado;//VARIABLE PARA GUARDAR EL RESULTADO
for (resultado=n; n>1;n--)resultado *=n;  //EL RESULTADO LE ASIGNAMOS EL NUMERO,MIENTRAS SEA MAYOR QUE UNO QUE RESTE 1 Y LO MULTIPLIQUE POR EL NUMERO
return resultado; //INSTRUCCION PARA QUE EL METODO NOS DEVUELVA EL RESULTADO
}


public static void main(String[] args) { //comienza el programa
//CREAMOS EL OBJETO

factorial factorial1 = new factorial();
double x=factorial1.producto(5); //llamamos al metodo
System.out.println(factorial1.producto(5));
}

}

« Última modificación: 14 de Septiembre 2014, 21:38 por Alex Rodríguez »

Mastermind

  • Experto
  • *****
  • Mensajes: 536
    • Ver Perfil
Re:Por que no sale el factorial de este numero???
« Respuesta #1 en: 07 de Abril 2014, 15:59 »
Dos cosas a cambiar: en el método producto la obtención de resultado no está bien definida, y por otro lado la línea double x=factorial1.producto(5); sobra, ya que el método ya lo estás llamando directamente desde el System.out.println

Quedaría así  ;):

Código: [Seleccionar]
public class factorial {
//definimos el metodo
public double producto (int n) { //LE PASAMOS UN ENTERO COMO ARGUMENTO
double resultado;//VARIABLE PARA GUARDAR EL RESULTADO
for (resultado=n; n>1;n--) {resultado = resultado*(n-1);}  //EL RESULTADO LE ASIGNAMOS EL NUMERO,MIENTRAS SEA MAYOR QUE UNO QUE RESTE 1 Y LO MULTIPLIQUE POR EL NUMERO
return resultado; //INSTRUCCION PARA QUE EL METODO NOS DEVUELVA EL RESULTADO
}

public static void main(String[] args) { //comienza el programa
factorial factorial1 = new factorial();
System.out.println(factorial1.producto(5));
}
}

xtc3

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 25
    • Ver Perfil
Re:Por que no sale el factorial de este numero???
« Respuesta #2 en: 07 de Abril 2014, 18:43 »
muchísimas gracias!!!! ya esta resuelto :)  :D

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".