Не плутати з Find the faorial!
Вступ
Фактор цілого числа n
може бути обчислений
Це порівняно просто і нічого нового. Однак факториали можна поширити на подвійні , такі, що
для парних чисел, і
для непарних чисел. Але ми не обмежені подвійними фабриками. Наприклад,
n !!! = n \ раз (n-3) \ раз (n-6) \ раз (...) \ раз6 \ раз 3
або
n !!! = n \ раз (n-3) \ раз ( n-6) \ times (...) \ times5 \ times2
or
n !!! = n \ times (n-3) \ times (n-6) \ times (...) \ times4 \ times1,
залежно від вихідне значення.
Підсумовуючи:
Змагання
Напишіть функцію, яка обчислить будь-який вид повторного факторіала для будь-якого невід’ємного цілого числа.
Вхідні дані
Або
- Рядок, що містить невід'ємне ціле число базового десяти, а потім 1 або більше знаків оклику. Наприклад ,
"6!"
чи"9!!"
або"40!!!!!!!!!!!!!!!!!!!!"
.
або
- Одні і ті ж значення, представлені двома цілими числами: одне негативне базове значення та одне додатне значення, що представляє фактичне число. Це можна зробити у будь-якому форматі із стандартних правил вводу / виводу.
Вихідні дані
Результат зазначеного розрахунку.
Зауваження виклику
0!
дорівнює1
за визначенням. Ваш код повинен це враховувати.- Кількість факторів обмежена поза цим діапазоном, ви можете виводити все, що завгодно. Крім того
0!
, що є єдиним винятком із цього правила.
Приклади
Input Output
3!!! 3
0! 1
6! 720
9!! 945
10!!!!!!!! 20
40!!!!!!!!!!!!!!!!!!!! 800
420!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 41697106428257280000000000000000
Спробуйте це з невтішленою реалізацією Python: Спробуйте в Інтернеті!
Загальні зауваження
- Це код-гольф , тому відповідь, що використовує найменші байти в кожній мові, виграє.
- Застосовуються стандартні правила , правила вводу-виводу та правила лазівки .
- Будь ласка, включіть спробуйте-посилання-посилання, щоб продемонструвати, що ваш код працює.
- Будь ласка, мотивуйте свою відповідь поясненням вашого коду.
3!!!!!!!
не повинно бути невизначеним - він повинен просто дати відповідь 3
. Це те саме, що 1!!=1
(не визначено). Також ваша специфікація вказує, що завжди буде хоча б одна !
, тому перший приклад 3
не відповідає специфікації.
(3!)!
натомість це вилучення термінів з факторіалу. Це оманливе ім'я; Я припускав, що припускає, що це функція "Фактор" буде застосовуватися неодноразово в ланцюжку, і мені довелося уважно прочитати, щоб побачити, що це насправді. На щастя, це питання це чітко пояснює. Кращою назвою може бути кроковий факторний або ступінчастий фактор чи щось таке.
0!
але зауваження, що стосуються викликів, говорить про те, що базовий показник буде меншим або рівним базовій.