Menu
Coddy logo textTech

Funkcje rekurencyjne — część 2

Część sekcji Logika i przepływ programu ścieżki Python w Coddy. Lekcja 61 z 78.

Funkcje rekurencyjne zazwyczaj składają się z dwóch części:

  1. Przypadek bazowy: określa, kiedy rekurencja powinna się zakończyć.
  2. Krok rekurencyjny: wywołuje samą funkcję z mniejszym argumentem.

Przykład: Obliczanie silni z użyciem rekurencji:

def factorial(n):
    if n == 1:  # Przypadek bazowy
        return 1
    return n * factorial(n - 1)  # Wywołanie rekurencyjne

print(factorial(5))  # Wynik: 120

Tutaj funkcja wywołuje samą siebie z argumentem n - 1, aż osiągnie 1, gdzie rekurencja się kończy.

Przykład: odwracanie ciągu znaków:

def recursive_reverse(s):
	if len(s) <= 1:  # Przypadek bazowy: pusty ciąg znaków lub ciąg jednoznakowy
		return s
	else:
		return recursive_reverse(s[1:]) + s[0]  # Krok rekurencyjny

text = "hello"
result = recursive_reverse(text)
print(result)
# Wynik: olleh

W tym przykładzie funkcja recursive_reverse wywołuje samą siebie z resztą ciągu znaków (s[1:]), aż ciąg znaków będzie pusty lub będzie zawierał tylko jeden znak. Każde wywołanie dołącza pierwszy znak do wyniku wywołania rekurencyjnego, skutecznie odwracając ciąg znaków.

challenge icon

Wyzwanie

Łatwy

Napisz funkcję rekurencyjną o nazwie fibonacci, która przyjmuje dodatnią liczbę całkowitą n jako argument i zwraca n-tą liczbę Fibonacciego. Ciąg Fibonacciego jest zdefiniowany następująco:

  • fibonacci(1) = 0
  • fibonacci(2) = 1
  • fibonacci(n) = fibonacci(n-1) + fibonacci(n-2) dla n > 2.

Przykładowe wejście:

n = 6

Przykładowe wyjście:

5

Spróbuj swoich sił

def fibonacci(n):
    # Napisz tutaj kod
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator Python online