fonction factorielle récursive
comment puis-je combiner ces deux fonctions dans une fonction récursive pour obtenir ce résultat:
factorial(6)
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
ce sont les codes
def factorial( n ):
if n <1: # base case
return 1
else:
return n * factorial( n - 1 ) # recursive call
def fact(n):
for i in range(1, n+1 ):
print "%2d! = %d" % ( i, factorial( i ) )
fact(6)
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
comme vous le voyez, l'exécution de ces deux donne une bonne réponse, je veux juste faire une fonction récursive.
Je n'ai aucune raison de combiner les deux en une seule fonction.
Hmm. Est-ce devoirs? Qu'avez-vous essayé jusqu'à présent?
Ne le faites pas. Il semble bien, la façon dont il est. En les combinant va juste rendre les choses plus difficiles.
FrustratedWithFormsDesigner: l'an dernier examen ... hahah .... Je souhaite que je pourrais vous prendre les gars avec moi d'écrire mon examen pour moi, mais il n'est pas possible 😛
Hmm. Est-ce devoirs? Qu'avez-vous essayé jusqu'à présent?
Ne le faites pas. Il semble bien, la façon dont il est. En les combinant va juste rendre les choses plus difficiles.
FrustratedWithFormsDesigner: l'an dernier examen ... hahah .... Je souhaite que je pourrais vous prendre les gars avec moi d'écrire mon examen pour moi, mais il n'est pas possible 😛
OriginalL'auteur user531225 | 2010-12-21
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur pythonFoo
2 lignes de code:
Tester:
Résultat:
OriginalL'auteur martynas
court:
OriginalL'auteur Ilyas
OriginalL'auteur Will McCutchen
essayez ceci:
Une chose que j'ai remarqué, c'est que vous êtes de retour '1' pour le n<1, cela signifie que votre fonction sera de retour 1 même pour les nombres négatifs. Vous pouvez résoudre ce problème.
OriginalL'auteur Vinay Pandey
Je n'ai aucune expérience avec Python, mais quelque chose comme cela?
OriginalL'auteur Mchl
OriginalL'auteur T-kin-ter
Est cette devoirs par hasard?
Donner PEP227 une lecture pour plus de détails. Le court, c'est que Python permet de définir des fonctions à l'intérieur des fonctions.
C'est tout à fait inefficace solution, comme vous le calculer factorielle(1)
n
fois, factorielle(2)n-1
fois, factorielle(3)n-2
fois et ainsi de suite...OriginalL'auteur D.Shawley
Un plus
OriginalL'auteur MattyW
Je ne sais pas vraiment la factorielle des nombres négatifs, mais cela fonctionne avec tous les n >= 0:
OriginalL'auteur Salah Hamza
Pouvez utiliser cette 4 lignes de code...
OriginalL'auteur Meir Keller
Et pour la première fois de calculer la factorielle récursive à l'aide de et la boucle while.
OriginalL'auteur Eksplorator Danych
Un plus =)
OriginalL'auteur XraySensei