# -*- coding: UTF-8 -*-
"""
Simple código que devuelve el factorial de un numero dado
Para calcular dicho valor, hay que multiplicar el numero dado, por su
antecesor mientas sea superior a 1
Ejemplo del factorial de 5 seria:
5 * 4 * 3 * 2 * 1 = 120
"""
def factorial(x,n):
"""
Función recursiva que calcula el factorial
Tiene que recibir:
x=>El ultimo valor calculado
n=>El numero a multiplicar
"""
if(n>0):
# Se va llamando a ella misma mientras el valor sea superior a 0
x=factorial(x,n-1)
x=x*n
else:
x=1
return x
try:
numero = int(raw_input("inserta un numero "))
# Ejecutamos la función recusiva para el calculo
calculo=factorial(1,numero)
print "El factorial de %s es %s" % (numero,calculo)
except:
print "\nTiene que ser un valor numerico"
Comentarios sobre la versión: Versión 1 (28)
for x in n:
fac=1
y en el shell, solamente escriben:
count = 1
z = 1
Quería decirte un par de cosas:
1.El tuyo no esta mejor porque ya lo dice el que puso el codigo al principio del mensaje lo hace usando
función recursiva. Eso significa que es un ejemplo de como usar una función recursiva. no dice que
sea la mejor manera.
2. Siempre es mejor la función recursiva.
prod=1
Sabemos que 1!=1 y todo factorial de un número n cumple la siguiente condición: n!=n*(n-1)!; por lo tanto:
1!=1*(1-1)!→1!=1*0!→1!/1=0!→1/1=0!→1=0!
Queda así demostrado que 0!=1.
Espero haberte ayudado.
factorial=1
# Así es más sencillo aún.
f = 1
f=numer
factorial = 1
i = 1
Hay un canal de youtube con mas de 133 videos de unos 5 minutos cada uno, es GENIAL.
Se llama ProgramacionATS.
Un abrazo.
else:
fact = 1
mult=1
else:
Comprendiendo que todo ha cambiado mucho desde el primer post 2013...por aquí os dejo uno sencillo.
A ver que os parece.
factorial = 1
i=1
fact=1