feed twitter facebook LinkedIn facebook

Java » Factorial de un número

noviembre 19, 2006 por Víctor Cuervo 176 Comentarios Imprimir Imprimir

El factorial de un número es la multiplicación de los número que van del 1 a dicho número. Para expresar el factorial se suele utilizar la notación n!. Así la definición es la siguiente:

n! = 1 x 2 x 3 x 4 x 5 x ... x (n-1) x n.

Siguiendo esta simple expresión podríamos codificarlo en Java de la siguiente forma.

Lo primero es definir la variable que va a definir el factorial y la que definirá el número sobre el que vamos a calcular el factorial.

  1. double factorial = 1;
  2. // El número elegido para el factorial es el 30
  3. double numero=30;

Lo siguiente es hacer el bucle en el cual iremos decrementando el número y multiplicando por el valor del factorial.

  1. while ( numero!=0) {
  2. factorial=factorial*numero;
  3. numero--;
  4. }

Solo nos quedará el volcar el valor por pantalla:

  1. System.out.println(factorial);

Esta es una forma muy sencilla de implementar el factorial. Si bien, tenemos otra forma de implementarlo. En este caso el factorial se define de una forma recursiva. Esta definición fue realizada por el matemático frances Christian Kramp.

La definición viene a decir lo siguiente:

si n=0
  entonces el factorial es 1
si n  > 1
  entonces (n-1)! x n

Esta implementación se puede definir con recursividad en la programación Java de la siguiente forma:

  1. public int factorial (double numero) {
  2. if (numero==0)
  3. return 1;
  4. else
  5. return numero * factorial(numero-1);
  6. }

Como podemos ver es un calco de la definición de Christian Kramp. En esta definición el método se irá llamando recursivamente hasta que se llegue a calcular el factorial del número 0.

Para volcar el dato por pantalla tendremos la siguiente línea de código:

  1. System.out.println(factorial(40));
Descargar el Codigo
Descargar el código
Error en el Codigo
Error en el código
Foro sobre Java Básico
Foro sobre Java Básico
tags: , , , ,

Artículos relacionados:

176 comentarios »

RSS feed para los comentarios de esta entrada. TrackBack URI

1 2 3 18
  1. Silvanita
    marzo 24, 2007 #

    quisiera saber
    cuanto es n!+(n+1)!+(n+2)! porfa que no encuentro la respuesta en ninguna pagina… y no entiendo cuando se suman

  2. cloe
    junio 7, 2007 #

    n.(n-1)!+(n+1)n!+(n+2)(n+1)n!
    me parece q es asi

  3. Jose Morales Molina
    junio 12, 2007 #

    hola como esta usted

    me interesa saber mas a cerca de este tema ya que estudio en un colegio de estudios cientificos y tecnologicos (preparatoria)
    y llevo la carrera de informatica, en este momento cirso el cuarto semestre, estoy en dias de salir de la escuela, y llevo lo que es c++
    que la verdad no le entiendo a nada, por que la profesora que lo imparte es muy dejada, y quisiera que me enseñara lo que usted sabe, gracias

  4. cindy castillo
    agosto 17, 2007 #

    quisiera saber como se calcula las notas de n estudiantes,con n consolidados,con n notas y saber el promedio de ellos

  5. JHON FERNANDO
    agosto 23, 2007 #

    quiciera saber las propiedades que pueden cumplir !

    po ejemplo 10!/5!

  6. martin
    agosto 24, 2007 #

    quisiera conseguir materialde estudio ahcerca de factorial

  7. marcela rodriguez
    agosto 27, 2007 #

    MARCELA RODRIGUEZ AGOSTO 27, 2007

    quiciera hacer un programa que muestre las tablas de multiplicar del 1 al 10
    gracias.

  8. lineadecodigo
    agosto 27, 2007 #

    Hola Marcela,

    Tienes el ejemplo en Tablas de multiplicar en Java. Espero que te sea de ayuda….

  9. marcela rodriguez
    agosto 29, 2007 #

    MARCELA RODRIGUEZ.

    quiciera hacer un programa que muestre las tablas de multiplicar de 1 al 10 en lenguaje de programacion de delphi ESPERO QUE ME PUEDAS AYUDAR

  10. liuu
    septiembre 6, 2007 #

    m gustaria saber si la programacion en macromedia dreamweaver kla programacion es lo mismo o no y si no lo es m gustaria q m dn el cod …..

1 2 3 18

Deja un comentario

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*