You are on page 1of 3

Java Factorial de un nmero Noviembre 19, 2006 por Vctor Cuervo .

. 103816 visitas 168 Comentarios Imprimir Imp rimir El factorial de un nmero es la multiplicacin de los nmero que van del 1 a dicho nmer o. Para expresar el factorial se suele utilizar la notacin n!. As la definicin es l a siguiente: n! = 1 x 2 x 3 x 4 x 5 x ... x (n-1) x n. Siguiendo esta simple expresin podramos codificarlo en Java de la siguiente forma. Lo primero es definir la variable que va a definir el factorial y la que definir el nmero sobre el que vamos a calcular el factorial. double factorial = 1; // El nmero elegido para el factorial es el 30 double numero=30; Lo siguiente es hacer el bucle en el cual iremos decrementando el nmero y multipl icando por el valor del factorial. while ( numero!=0) { factorial=factorial*numero; numero--; } Solo nos quedar el volcar el valor por pantalla: System.out.println(factorial); Esta es una forma muy sencilla de implementar el factorial. Si bien, tenemos otr a forma de implementarlo. En este caso el factorial se define de una forma recur siva. Esta definicin fue realizada por el matemtico frances Christian Kramp. La definicin viene a decir lo siguiente: si n=0 entonces el factorial es 1 si n > 1 entonces (n-1)! x n Esta implementacin se puede definir con recursividad en la programacin Java de la siguiente forma: public int factorial (double numero) { if (x==0) return 1; else return numero * factorial(numero-1); } Como podemos ver es un calco de la definicin de Christian Kramp. En esta definicin el mtodo se ir llamando recursivamente hasta que se llegue a calcular el factoria l del nmero 0. Para volcar el dato por pantalla tendremos la siguiente lnea de cdigo: System.out.println(factorial(40));

//////////////////////

Esto es lo mas Optimo q te puedo ofrecer XD: import java.io.*; class Factorial{ public static void main (String[] args) { InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); try{ System.out.println("ingrese un numero:"); int n = Integer.parseInt(br.readLine()); int fact=1; if(n<2){ fact = 1; System.out.println("n!=1"); } else{ for(int i=1; i<=n;i++){ fact *= i; }//fin for System.out.println("n!="+fact); } }//cierra try catch(Exception e){ e.printStackTrace(); System.out.println("WTF!"); }//cierra catch }//cierra main }//cierra class creo q no es tan amplio, pero al menos es una idea..... n n! 0 1 1 1 2 2 3 6 4 24 5 120 6 720 7 5.040 8 40.320 9 362.880 10 3.628.800 15 1.307.674.368.000 20 24.32.902.008.176.640.000 25 15.511.210.043.330.985.984.000.000 50 3,04140932... 1064 70 1,19785717... 10100 450 1,73336873... 101.000 3.249 6,41233768... 1010.000 25.206 1,205703438... 10100.000 100.000 2,8242294079... 10456.573 Para todo nmero natural n, se llama n factorial o factorial de n al producto de t odos los naturales desde 1 hasta n: Que de un modo resumido, se puede expresar como:

Se define 0! = 1, para que la relacin n! = n (n - 1)! sea tambin vlida para n = 1. Esta relacin permite definir los factoriales por recursividad. La notacin n! fue p opularizada por el matemtico francs Christian Kramp. Los factoriales se usan mucho en la rama de la matemtica llamada combinatoria, a travs del binomio de Newton, que da los coeficientes de la forma desarrollada de (a + b)n: (a + b)n = an + n an - 1 b + Cn, 2 an - 2 b2 + ... + n a bn - 1 + bn con: Por medio de la combinatoria, los factoriales intervienen en el clculo de las pro babilidades. Intervienen tambin en el mbito del anlisis, en particular a travs del d esarrollo polinomial de las funciones (frmula de Taylor). Se generalizan a los re ales con la funcin gamma, de gran importancia en el campo de la aritmtica. Para valores grandes de n, existe una expresin aproximada para el factorial de n, dado por la frmula de Stirling: La ventaja de esta frmula es que no precisa induccin y, por lo tanto, permite eval uar n! ms rpidamente cuando mayor sea n. El factorial de n es generalizado para cualquier nmero real n por la Funcin gamma de manera que Contenido [ocultar] 1 Productos similares o 1.1 Primorial o 1.2 Doble factorial 2 Implementacin en lenguajes de programacin o 2.1 Factorial ? 2.1.1 Bash ? 2.1.2 C ? 2.1.3 Perl ? 2.1.4 Python ? 2.1.5 Ruby ? 2.1.6 Fortran 3 Vase tambin 4 Enlaces externos