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.

Archivo del blog

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

12 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
    4. jajajaja, debes de conocer primero la API de java, ahí encontraras un tipo de dato llamado BigInteger, éste es para enteros muuuy grandes. SALUDOS, chaval.:)

      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
  5. Excelente amigo, codigos basicos instructivos para ir conociendo el tema. Para los que te critican estos temas son pasos, si quieren correr aprendan a caminar.

    ResponderEliminar

Con la tecnología de Blogger.