Ne pas confondre avec Trouver la factorielle!
introduction
La factorielle d'un entier n
peut être calculée par
C'est relativement facile et rien de nouveau. Cependant, les factorielles peuvent être étendues aux factorielles doubles , telles que
En résumé:
Le défi
Ecrivez une fonction qui calculera tout type de factorielle répétée pour tout entier non négatif.
Contribution
Non plus
- Chaîne contenant un entier non négatif en base dix suivi d'un ou plusieurs points d'exclamation. Par exemple
"6!"
ou"9!!"
ou"40!!!!!!!!!!!!!!!!!!!!"
.
ou
- Les mêmes valeurs représentées par deux entiers: une valeur de base non négative et une valeur positive représentant le compte factoriel. Cela peut être fait selon n'importe quel format à partir des règles d'E / S par défaut.
Sortie
Le résultat dudit calcul.
Remarques du challenge
0!
est égal1
par définition. Votre code doit en tenir compte.- Le comptage factoriel est limitée par en dehors de cette plage, vous êtes libre de sortie quelconque. À part
0!
, qui est la seule exception à cette règle.
Exemples
Input Output
3!!! 3
0! 1
6! 720
9!! 945
10!!!!!!!! 20
40!!!!!!!!!!!!!!!!!!!! 800
420!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 41697106428257280000000000000000
Essayez-le avec une implémentation Python non-golfée: essayez-le en ligne!
Remarques générales
- C'est du code-golf , donc la réponse utilisant le moins d'octets dans chaque langue gagne.
- Règles standard , les règles d' E / S et les règles échappatoire applicables.
- S'il vous plaît inclure un lien Essayez-le en ligne pour démontrer que votre code fonctionne.
- S'il vous plaît motiver votre réponse avec une explication de votre code.
3!!!!!!!
ne devrait pas être indéfini - il devrait simplement donner la réponse 3
. C'est pareil que 1!!=1
(non indéfini). De plus, votre spécification d'entrée indique qu'il y en aura toujours au moins un !
, le premier exemple 3
ne correspond donc pas à la spécification.
(3!)!
plutôt la suppression de termes d'une factorielle. C'est un nom trompeur; Je suis arrivé en supposant que la fonction Factorielle serait appliquée de manière répétée dans une chaîne et que je devais lire attentivement pour voir ce que c'était réellement. Heureusement, la question l'explique clairement. Un meilleur nom pourrait être stride factorial ou step factorial ou quelque chose.
0!
mais les remarques de défi indiquent que le nombre factoriel sera inférieur ou égal à la valeur de base.