Não confunda com Encontre o fatorial!
Introdução
O fatorial de um número inteiro n
pode ser calculado por
Isso é relativamente fácil e nada de novo. No entanto, os fatoriais podem ser estendidos para fatoriais duplos , de modo que
Em resumo:
O desafio
Escreva uma função que calcule qualquer tipo de fatorial repetido para qualquer número inteiro não negativo.
Entrada
Ou
- Uma sequência contendo um número inteiro de base dez não negativo, seguido por 1 ou mais pontos de exclamação. Por exemplo,
"6!"
ou"9!!"
ou"40!!!!!!!!!!!!!!!!!!!!"
.
ou
- Os mesmos valores representados por dois números inteiros: um valor base não negativo e um valor positivo representando a contagem fatorial. Isso pode ser feito de acordo com qualquer formato das regras de E / S padrão.
Saída
O resultado do referido cálculo.
Comentários do desafio
0!
é igual1
por definição. Seu código deve ser responsável por isso.- A contagem factorial é limitado por fora desta faixa, você está livre para a saída de qualquer outra coisa. Além de
0!
, que é a única exceção a esta regra.
Exemplos
Input Output
3!!! 3
0! 1
6! 720
9!! 945
10!!!!!!!! 20
40!!!!!!!!!!!!!!!!!!!! 800
420!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 41697106428257280000000000000000
Experimente com uma implementação Python não destruída: Experimente online!
Observações gerais
- Isso é código-golfe , então a resposta usando o menor número de bytes em cada idioma vence.
- Regras padrão , regras de E / S e regras de brecha são aplicadas.
- Inclua um link Experimente online para demonstrar seu funcionamento do código.
- Motive sua resposta com uma explicação do seu código.
3!!!!!!!
não deve ser indefinido - deve apenas dar a resposta 3
. É o mesmo que 1!!=1
(não indefinido). Além disso, sua especificação de entrada diz que sempre haverá pelo menos uma !
, portanto o primeiro exemplo 3
não se ajusta à especificação.
(3!)!
a remoção de termos de um fatorial. É um nome enganador; Eu assumi que ele aplicaria a função fatorial repetidamente em uma cadeia e tive que ler atentamente para ver o que realmente era. Felizmente, a pergunta explica claramente. Um nome melhor pode ser fatorial de passo ou fatorial de etapa ou algo assim.
0!
mas as observações do desafio dizem que a contagem fatorial será menor ou igual ao valor base.