miércoles, 18 de febrero de 2009

EL FACTORIAL DE UN NUMERO

import javax.swing.JOptionPane;
class factorial2
{
public static void main(String Args[])
{
/* estas lineas de codigo son la declaracion de las variables
int factorial[] = new int[999999];
int resto=0;
String strnumero;
int intnumero;
int a=1, d=0, f=0;
factorial[0] = 1;
/* aqui le pedimos al usuario el numero que desea el factorial

strnumero = JOptionPane.showInputDialog( "Ingrese el numero" );

/*aqui lo guardamos
intnumero = Integer.parseInt( strnumero );
for(;a<=intnumero;a++) { if(a%500 == 0) System.out.println(a); /*esto es para que el usuario sepa por que nmero va.*/ for(d=0;d<=f;d++) { /*voy recorriendo los indices del array hasta llegar al indice maximo hasta el momento*/ factorial[d] = factorial[d] * a + resto; resto = factorial[d] / 10; /*el factorial se divide entre 10 para que la variable int me elimine el ultimo numero*/ factorial[d] = factorial[d] - (resto*10); /*con esto obtengo el ultimo numero que es el que se quedara en el array*/ } d--; for(;f>=d;)
{
if(resto==0)
{
break;
}
f++;

/*aqui es cuando aumento el indice del array a medida que lo voy necesitando*/

factorial[f] = factorial[f] * a + resto;
resto = factorial[f] / 10;
factorial[f] = factorial[f] - (resto*10);
}
}
System.out.print("El factorial de: "+intnumero+" es: ");
for(d=f+1;f>=0;f--)
{
System.out.print(factorial[f]);
}
System.out.println("\nEste numero tiene: "+d+" cifras");
}
}

0 comentarios:

Publicar un comentario