viernes, 3 de abril de 2015

WSQ09 FACTORIAL CALCULATOR

Calculador Factorial

La fórmula para calcular la factorial sería esto: 
   n! =
   1 \times 2 \times 3 \times 4 \times ... \times (n-1) \times n
.
También está esto: 
   n! =
   \prod_{k=1}^n k
.
Hay 2 formas diferentes hacer la factorial: con un loop y con una recursión.

Recursión

La fórmula en recursión sería esta: 
   n! =
   \begin{cases}
      1              & \text{si, } n = 0 \\
      (n-1)!\times n & \text{si, } n > 0
   \end{cases}
Hay que definir primero el algoritmo antes de llevarlo al programa principal:

0 y 1darán valores a 1. Desde 2 hasta más adelante se hará como en la fórmula.
Ahora a utilizar for "x" i  range:

"y" sería todos los valores dentro de un rango hasta cierto límite. Para esos límites sería dentro del paréntesis. El primer valor sería en donde comienza; el segundo, donde termina y el tercero sería el número de intervalos que va a tomar. En el segundo valor dentro del paréntesis( el rango) está sumado con 1 debido a que si no lo está, el programa terminará a un intervalo atrás del valor del límite final, en este caso x. Por ejemplo, si x es 6 y en el segundo valor del paréntesis solo pongo x, llegará hasta 5.

Para no dar más rodeos, aquí sería en el output:

Loop

Es parecido al de recursión, esta vez con while. Hay que definir el algoritmo así:


Esto hará que el valor que pusimos multiplique "respuesta" y luego se le resta el valor a 1 para multiplicar de nuevo "respuesta" hasta llegar a 1. 

En caso de que el valor sea negativo, hay que decirle al usuario que cambie de valor a uno positivo.
Utilizamos de nuevo while, pero afuera de la función del algoritmo. 
Cada vez que mando un valor para que el programa lo calcule, este me pregunta si deseo continuar. Para continuar, pon "y" en la terminal de acuerdo con esta foto. Para salir, pon "n" u otro carácter. Además, si pongo un valor negativo, el programa no me lo permitirá y me hará la misma pregunta si es que quiero continuar. Así quedaría en el output:

No hay comentarios.:

Publicar un comentario