¡No debe confundirse con Find the factorial!
Introducción
El factorial de un entero n
se puede calcular por
Esto es relativamente fácil y nada nuevo. Sin embargo, los factoriales se pueden extender a factores dobles , de modo que
para números pares, y
para números impares. Pero no estamos limitados a factoriales dobles. Por ejemplo
o
or
dependiendo de valor inicial
En resumen:
donde
O, en inglés simple: reste el conteo factorial del número base repetidamente y multiplique todos los enteros positivos resultantes.
El reto
Escriba una función que calcule cualquier tipo de factorial repetido para cualquier número entero no negativo.
Entrada
Ya sea
- Una cadena que contiene un entero de base diez no negativo, seguido de 1 o más signos de exclamación. Por ejemplo,
"6!"
or"9!!"
o"40!!!!!!!!!!!!!!!!!!!!"
.
o
- Los mismos valores representados por dos enteros: un valor base no negativo y un valor positivo que representa el recuento factorial. Esto se puede hacer de acuerdo con cualquier formato de las reglas de E / S predeterminadas.
Salida
El resultado de dicho cálculo.
Observaciones de desafío
0!
igual1
por definición. Su código debe dar cuenta de esto.- El conteo factorial está limitado por fuera de este rango, usted es libre de generar lo que sea. Aparte de , que es la única excepción a esta regla.
0!
Ejemplos
Input Output
3!!! 3
0! 1
6! 720
9!! 945
10!!!!!!!! 20
40!!!!!!!!!!!!!!!!!!!! 800
420!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 41697106428257280000000000000000
Pruébelo con una implementación de Python sin golf: ¡ Pruébelo en línea!
Observaciones generales
- Este es el código de golf , por lo que gana la respuesta con la menor cantidad de bytes en cada idioma.
- Se aplican reglas estándar , reglas de E / S y reglas de escapatoria .
- Incluya un enlace Probar en línea para demostrar que su código funciona.
- Motive su respuesta con una explicación de su código.
3!!!!!!!
no debe estar indefinido, solo debe dar la respuesta 3
. Es lo mismo que 1!!=1
(no indefinido). Además, su especificación de entrada dice que siempre habrá al menos uno !
, por lo que el primer ejemplo 3
no se ajusta a la especificación.
(3!)!
cambio, no está eliminando términos de un factorial. Es un nombre engañoso; Entré suponiendo que iba a aplicar la función Factorial repetidamente en una cadena y tuve que leer cuidadosamente para ver qué era realmente. Afortunadamente, la pregunta lo explica claramente. Un nombre mejor podría ser factorial de paso o factorial de paso o algo así.
0!
pero las observaciones del desafío dicen que el recuento factorial será menor o igual que el valor base.