Курс по Raku / Основи / Цикли / Упражнения / Факториел
Решение: Факториел
Факториел на N
е произведение на целите числа от 1 до и включително N
. Например, факториел на 4 е 1 * 2 * 3 * 4 = 24.
Код
my $n = 8;
my $f = 1;
$f *= $_ for 2..$n;
say $f;
🦋 Намерете програмата във файла factorial.raku.
Изход
Стартирайте програмата няколко пъти и опитайте различни стойности на $n
.
$ raku exercises/loops/factorial.raku
40320
Коментари
Тази програма използва оператора *=
, който е съкратен запис за умножение с присвояване: $x *= $y
е еквивалентно на $x = $x * $y
.
Можете да използвате ‘пълен’ цикъл вместо постфиксна форма:
my $n = 8;
my $f = 1;
for 2..$n -> $x {
$f *= $x;
}
say $f;
Още по темата
Ще се върнем към тази задача няколко пъти. В тази част на курса ще решим този проблем и рекурсивно.
Във втората част на курса ще научим за така наречените оператори за редукция, които правят решението тривиално. Също така ще има начин да се дефинира персонализиран оператор !
, така че да можете да напишете $n!
за изчисляване на факториел. Накрая, ще има още една възможност да видите интересно решение, когато ще говорим за клаузата where
.
Следващо упражнение
Навигация по курса
← Условни проверки / Теренарен оператор | Преобразуване на типове данни →
Тази страница е автоматично преведена с ChatGPT 4.0. Оригинален текст на английски
Преводи на тази страница: English • Deutsch • Español • Italiano • Latviešu • Nederlands • Български • Русский • Українська