JAVA SE6 & Swing Capitulo 02 pag.28 Ej.2

Construir un programa que calcule mediante números de tipo float el factorial de un número que no se pueda calcular empleados números de tipo int.

image

Viendo que en el anterior ejercicio el tipo no respetaba sus propias enseñanzas ni sus propios métodos pues yo no pienso ser menos, arriba se puede ver la solución al ejercicio.

Podemos observar que el máximo factorial es 12 que nos da un resultado de 479001600, el siguiente nos daría 6227020800 el cual superaría el máximo lógico de los integer.

Explicando un poco el código podemos ver una estructura de control, este while se ejecutara siempre y que se cumpla lo que tiene dentro del paréntesis, le he puesto un true por que no quiero que salga nunca asta que no se cumpla lo que tengo en el if, realmente podría haber puesto la condición dentro de otro tipo de estructura de control pero he elegido esta manera por que me parece que es la manera más cómoda para comprender.

En el if tengo puesto para que se haga una división entre el actual resultado factorial y el siguiente, de esta manera consigo el factorial en el que nos encontramos, como los integers son cíclicos esta es la única manera de saberlo, por que si no nos iriamos a 13 ciclos para poder comprobar que es negativo.