Курс Раку / Основи / Створення та виклик функцій / Вправи / Рекурсивний факторіал
Рішення: Рекурсивний факторіал
Факторіал є дуже продуктивною вправою, оскільки його можна вирішити багатьма різними способами. Цього разу ми використовуємо рекурсію, що означає, що функція викликається сама з себе.
Код 1
Ось код рішення. Зверніть увагу, що потрібно перевірити умову для зупинки рекурсії, інакше вона буде продовжуватися нескінченно.
sub factorial($n) {
if $n < 2 {
return 1;
}
else {
return $n * factorial($n - 1);
}
}
say factorial(10);
🦋 Знайдіть програму у файлі recursive-factorial.raku.
Код 2
У випадках, як показано в цьому коді, часто краще використовувати постфіксні форми if
, щоб негайно повернутися з функції. Такий підхід очищає код і зменшує кількість відступів та пунктуації.
sub factorial($n) {
return 1 if $n < 2;
return $n * factorial($n - 1);
}
say factorial(10);
🦋 Знайдіть оновлену програму у файлі recursive-factorial-2.raku.
Приклад
Запустіть програму та перевірте результат. До речі, чи знали ви, що 10! — це точна кількість секунд у шести тижнях?
$ raku exercises/functions/recursive-factorial.raku
3628800
Наступна вправа
Навігація по курсу
← Асоціативні типи даних / Інтерполяція хешів | Більше про функції →
Ця сторінка автоматично перекладена за допомогою ChatGPT 4o. Оригінальний текст англійською мовою.
Переклади цієї сторінки: English • Deutsch • Español • Italiano • Latviešu • Nederlands • Български • Русский • Українська