Курс по Raku / Функционално, паралелно, реактивно и уеб програмиране / Функционално програмиране / Рекурсия / Exercises / Степен

Решение: Степен

Ето едно възможно решение на задачата.

Код

sub power($base, $exp) {
    $exp == 0 ?? 1 !! $base * power($base, $exp - 1);
}

say power(2, 10);

🦋 Намерете програмата във файла power.raku.

Изход

1024

Коментари

  1. Базовият случай връща 1, когато степенният показател стигне 0, защото всяка основа на нулева степен е единица.

  2. Рекурсивната стъпка умножава $base по power($base, $exp - 1), обелвайки по един множител всеки път. Затова power(2, 10) умножава десет двойки и дава 1024.

Навигация в курса

Степен   |   Сума на цифрите