Не путайте с Find the factorial!
Введение
Факториал целого числа n
можно вычислить как
Это относительно просто и ничего нового. Тем не менее, факториалы могут быть расширены до двойных факториалов , таких что
для четных чисел и
для нечетных чисел. Но мы не ограничены двойными факториалами. Например,
или
или
зависимости от начальное значение.
В итоге:
где
Или, на простом английском: вычитайте факториальное число из базового числа многократно и умножьте все получающиеся натуральные числа.
Соревнование
Напишите функцию, которая будет вычислять любой вид повторяющегося факториала для любого неотрицательного целого числа.
вход
Или
- Строка, содержащая неотрицательное целое число от основания до десяти, за которым следует 1 или более восклицательных знаков. Например,
"6!"
или"9!!"
или"40!!!!!!!!!!!!!!!!!!!!"
.
или
- Одинаковые значения представлены двумя целыми числами: одно неотрицательное базовое значение и одно положительное значение, представляющее счет факториала. Это можно сделать в соответствии с любым форматом из правил ввода / вывода по умолчанию.
Выход
Результат указанного расчета.
Вызов замечания
0!
равно1
по определению. Ваш код должен учитывать это.- Количество факториалов ограничено значением за пределами этого диапазона, вы можете выводить все что угодно. Кроме того , что является единственным исключением из этого правила.
0!
Примеры
Input Output
3!!! 3
0! 1
6! 720
9!! 945
10!!!!!!!! 20
40!!!!!!!!!!!!!!!!!!!! 800
420!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 41697106428257280000000000000000
Попробуй это с незакрытой реализацией Python: попробуй онлайн!
Основные пометки
- Это код-гольф , поэтому ответ, использующий наименьшее количество байтов на каждом языке, выигрывает.
- Применяются стандартные правила , правила ввода / вывода и лазейки .
- Пожалуйста, включите ссылку Try it Online, чтобы продемонстрировать, как работает ваш код.
- Пожалуйста, мотивируйте ваш ответ объяснением вашего кода.
3!!!!!!!
не должно быть неопределенным - оно должно просто дать ответ 3
. Это так же, как 1!!=1
(не определено). Также в вашей входной спецификации сказано, что всегда будет хотя бы один !
, поэтому первый пример 3
не соответствует спецификации.
(3!)!
вместо этого, это удаляет термины из факториала. Это вводящее в заблуждение имя; Я пришел к выводу, что он будет неоднократно применять факториальную функцию в цепочке, и мне пришлось внимательно прочитать, чтобы увидеть, что это на самом деле. К счастью, вопрос объясняет это ясно. Лучшее имя может быть факториал шага или факториал шага или что-то.
0!
но примечания к вызову говорят, что факториальное число будет меньше или равно базовому значению.