Facto, facta… ¡Factoriales! #WSQ09

Este código se trata acerca de encontrar el resultado de el factorial de un número. Es decir si introducimos el número 5 y queremos encontrar el resultado de su factorial es: 1 * 2 * 3 * * 5 = 120. Sí lo sé, las matemáticas tienen nombres complicados para cosas sumamente sencillas.

El requerimiento para este código era no usar la función math.factorial(n) porque entonces el código se resumiría a una o 2 líneas así que lo tenemos que hacer de la forma ruda y aquí lo tenemos:

WSQ091

Este código fue hecho bajo un ciclo while.

Mientras que el segundo código lo hicimos así:

WSQ09

Este código fue hecho bajo un ciclo for.

En especial, esta tarea fue muy sencilla de hacer teniendo los conocimientos previos, este código lo había realizado en mi clase de Introducción a la Computación el semestre pasado con la diferencia que lo había realizado en el lenguaje C# y ahí podía usar do/while y eso hacía las cosas mucho más sencillas.

Para hacer una sentencia similar al do/while usé otro ciclo:

while True:
stuff()
if not condition():
break

Este ciclo lo encontré en la página StackOverflow. Tengo que decir que estos chicos si saben de lo que hablan.

A continuación anexo mi código en GitHub como siempre debería haberlo hecho.


# Este código es para encontrar el factorial de un número mediante un while loop.

while True:
    num = int(input("Venga, dame ese número: "))
    res = num - 1
    while res != 1:
        num *= res
        res -= 1
    print("Hola, tu resultado es {}".format(num))
    ques = str(input("¿Quieres intentarlo de nuevo?: "))
    if not ques == "y":
        break

# Este código es para encontrar el factorial de un número mediante un for loop.

while True:
    numb = int(input("Venga, dame ese número: "))
    fact 
Continue reading "Facto, facta… ¡Factoriales! #WSQ09"

WSQ09 factorial

Muy similar al WSQ07, tanto que abrí el wsq07 y practicamente solo le cambié la operación… y lo guardé (por mensa) como WSQ07 :CC byebye wsq07

En fin, opino que los While son muy divertidos 😀

 

NOTAS: Como es factorial, obviamente son multiplicaciones, por lo tanto igual se tiene que tener un acumulador yyyyyyyyyyy no debe estar igualado a cero(obvio el porqué).

qué más mari, qué mas…

El while debe estar al principio de todo para que mientras la orden no sea detener el programa lo corra una y otra y otra vez: se tendrán dos respuestas a la pregunta “quieres continuar?” “si ” “no”.. yo lo pongo como un 1 o 2. “1= sí” , por ésta razón el programa tiene que iniciar con un sí* antes del while. para que se pueda iniciar.

Me gusta hacer las cosas lindas -w- así que imprimí toda la serie, no solo el resultado. C:

wsq09