en Ejercicios Resueltos, Programación

Ejercicios de Programación: Calculemos el Factorial de un número

Calculemos el factorial de un número

Debido a qué me encuentro cansado después de un largo día en el trabajo, será una entrada breve, pero siempre con el objetivo de compartir algo por día, para así también me sirva como repaso, en esta ocasión, simplemente voy a mostrarles algunas maneras que conozco para calcular el Factorial de un número, claro, utilizando el lenguaje Python.

Nota: Para poder realizar la solución de un problema, primero que nada debemos entenderlo, en este caso, el problema es obtener el factorial de un número cualquiera, a estas alturas espero sepas como se calcula el factorial de un número, pero si no es así, déjame mostrarte. El factorial de un número, se calcula multiplicando este número por todos los números anteriores a él hasta el 1. Esto es:

6! = 6 * 5 * 4 * 3 * 2 * 1, lo que nos da como resultado 720.

Sabiendo esto, veamos que opciones tenemos con Python para llevar a cabo esta operación.

Nota 2: Para simpleza de la entrada, todas las formas que veremos, las probaremos calculando el factorial del número 6, obviamente el procedimiento será el mismo para cualquier número.

Haciéndolo de forma “sucia”

print(6 * 5 * 4 * 3 * 2 * 1)

Utilizando la función built-in de Python

from math import factorial
factorial(5)

Utilizando un ciclo “while”

def fact_1(n):
    factorial_total = 1
    while n > 1:
        factorial_total *= n
        n -= 1
    return factorial_total

Utilizando recursividad

def fact_recursividad(n):
    if n > 1:
        return n * fact_recursividad(n - 1)
    else:
        return 1

Utilizando recursividad y el operador ternario 😀

def fact_ternario(n):
    return n * fact_ternario(n - 1) if n > 1 else 1

EDICIÓN (24/04/2016):
Gracias a la observación de Daniel en los comentarios, añado la forma elemental para
realizar el procedimiento.
Saludos.

def fact(n):
    if n == 0:
        r = 1
    else:
        r = n * fact(n - 1)
    return r

Ahora, si ejecutas el código podrás notar que todos devuelven el mismo resultado para cualquier número, pero podemos observar que tenemos diferentes maneras de programar la solución.

Factorial: Resultados

 

 

 

 

Puedes encontrar el código utilizado en esta entrada, comentario de mejor foma en el siguiente repositorio de Github https://github.com/TheMushrr00m/factorial-python 😀

Si tienes alguna duda, no dudes en dejar tu comentario, si te parecio interesante o tienes algún punto en el que piensas que podría mejorar algo, por favor no dudes también en dejar tu comentario, de igual forma comparte la entrada para que pueda llegar a alguien a quien le pueda resultar útil. Saludos.

Deja un comentario

    • Hola, tienes razón, me olvide de poner esa que es la forma elemental para realizar el calculo, pero si observas bien, las opciones que mostré al realizar la comparación de (mayor que 1), y declarar mi variable auxiliar siempre como 1 al inicio, me permite evitar la comparación de “n == 0”, siendo igual de eficientes, únicamente es otra forma de representación, ahora edito la entrada y añado tu sugerencia. Saludos y gracias por pasar a leer.