Una forma sencilla y rápida de aprender JAVA, observando y deduciendo cómo se comporta el lenguaje a través de ejemplos prácticos.

jueves, 25 de febrero de 2010

Recursividad: Cálculo factorial.

Codigo:
  1. public class Main {
  2. ..static int factorial (int numero) {
  3. ....if (numero == 0) return 1;
  4. ....else return numero * factorial(numero-1);
  5. ..}
  6. ..public static void main(String[] args) {
  7. ....System.out.println("Factorial de 5 es: " + factorial(5));
  8. ..}
  9. }
Resultado:
  • Factorial de 5 es: 120

10 comentarios:

  1. Su Trabajo Es Excelente, Simple, Claro, Eficiente.
    Estoy Empezando Desde CERO Y Su Esfuerzo Me Ayuda A Vizualizar El Codigo Java Sin Confuciones.
    Muchas Gracias.

    ResponderEliminar
  2. No sirve, al momento de poner para el 50 factorial me da 0 y si cambio el tipo de dato a long me da 50!=-3258495067890909184 y el factorial es: 50! = 30414093201713378043612608166064768844377641568960512000000000000 no sirve tu código.

    ResponderEliminar
    Respuestas
    1. Para números tan grandes habría que cambiar el tipo de dato a "BigInteger".

      Eliminar
    2. Solo debe de cambiar el tipo de dato a double

      Eliminar
    3. Tu eres quien no sirve para resolver problemas y entender, no todo te lo darán hecho muchacho XD

      Eliminar
  3. Donde dice static int factorial( int nummero), se cambia por "static double factorial( int numero)" , y se deja todo el código igual,
    en el public static main se introduce el numero por parámetro y todo funciona perfecto, incluso números grandes como 560 por ejemplo, que devuelve la palabra infinity, no dando error, pero siendo imposible que devuelva resultado por que se pasa de rango. El factorial maximo que te devolvera sera 170!, lo cual para `racticar en Java esta muy bien.
    Gracias al autor por el código, me ha permitido experimentar.

    ResponderEliminar
  4. como puedo cambiar el código para que saque el factorial de un numero ingresado por el ususario?

    ResponderEliminar

Con la tecnología de Blogger.