ID: 2910 OOP - Podstawy Łatwe

Źródło: Arkusze CKE

Jaką wartość zwróci poniższa funkcja dla argumentu n = 5?

function silnia(n) {
if (n <= 1) return 1;
return n * silnia(n - 1);
}

Warianty odpowiedzi

  1. A

    24

  2. B

    120

  3. C

    5

  4. D

    60

Wyjaśnienie

Mamy tu klasyczny przykład rekurencji, czyli funkcji, która wywołuje samą siebie, dopóki nie osiągnie warunku brzegowego.

Warunkiem stopu jest n mniejsze bądź równe 1, kiedy funkcja bez dalszych wywołań po prostu zwraca 1.

Dla argumentu 5 funkcja rozbija problem na kolejne kroki: 5 * silnia(4), potem 4 * silnia(3) i tak dalej, aż dojdzie do silni z 1.

Gdy pętla wywołań dotrze do końca, następuje zwijanie wyników: 5 * 4 * 3 * 2 * 1. Ostateczny wynik tego mnożenia to 120.

Sprawdź się w praktyce

Rozwiąż pełny test próbny INF.04 albo wylosuj pojedyncze pytanie na szybką powtórkę.

Podobne pytania — OOP - Podstawy