Przedstawiony rekurencyjny kod źródłowy zapisany językiem Python oblicza
Przedstawiony rekurencyjny kod źródłowy zapisany językiem Python oblicza
def licz(n):
if n > 1:
return n * licz(n-1)
else:
return 1
print(licz(5))Wyjaśnienie i uzasadnienie dydaktyczne
Poprawna odpowiedź to C (silnię). Algorytm mnoży liczbę n przez wynik wywołania funkcji dla n-1, aż do osiągnięcia warunku bazowego (n nie jest większe od 1), gdzie zwraca 1. Dla licz(5) otrzymujemy działanie: 5 \cdot 4 \cdot 3 \cdot 2 \cdot 1, co jest definicją silni (5!).
Wyjaśnienie pozostałych opcji:
- NWW – wymagałoby dwóch liczb wejściowych.
- Suma – w kodzie musiałby występować operator dodawania (
+) zamiast mnożenia (*). - Fibonacci – wymagałby sumowania dwóch poprzednich wywołań rekurencyjnych (np.
licz(n-1) + licz(n-2)).
Chcesz poćwiczyć całą kwalifikację INF.04?
Egzamin próbny na czas, nauka działami, losowe pytanie albo przegląd całej bazy — wszystko w przeglądarce i bez zakładania konta.
Pojęcia z tego pytania
- Pojęcie i Cechy AlgorytmuUporządkowany, skończony i jednoznaczny ciąg instrukcji i kroków postępowania prowadzący do rozwiązania określonego problemu obliczeniowego dla poprawnych danych wejściowych.
- Funkcje, Metody i Przekazywanie ParametrówWydzielone, nazwane bloki kodu realizujące określone zadanie, przyjmujące parametry wejściowe i opcjonalnie zwracające wartość wyniku za pomocą instrukcji return.
- Podstawowe typy i struktury w PythoniePodstawowe kolekcje Pythona: Listy [mutowalne], Krotki (niemutowalne), Słowniki {klucz: wartość} oraz Zbiory set() o unikalnych elementach.
Podobne pytania z działu „Reprezentacja algorytmow i notacje”
Ten sam obszar materiału z kwalifikacji INF.04. W całej bazie znajdziesz 13 pytań z tego działu.
- #101
Rezultatem wykonania przedstawionego fragmentu kodu jest wypisanie liczb z przedziału od 2 do 20, które są
- #108
Obiektowe podejście do rozwiązywania problemów obejmuje między innymi:
- #109
Przedstawiona metoda jest implementacją algorytmu
- #201
Który blok kodu zawiera przykład użycia rekurencji?
- #228
W wyniku wykonania przedstawionego kodu zostaną wypisane