Junior — Middle
Selgitage rekursiivsete kõnede kontseptsiooni programmeerimises
sobes.tech AI
Vastus AI-lt
Rekursiivne kõne on olukord, kus funktsioon kutsub iseennast üles, et lahendada ülesannet. Tavaliselt kasutatakse rekursiooni keeruka ülesande jagamiseks lihtsamateks samatüüpi alatoiminguteks.
Näide: arvutada numbri n faktoriaal (n!) — kõigi arvude korrutis 1-st kuni n-ni.
def factorial(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial(n - 1)
Siin kutsub funktsioon factorial iseennast väiksema argumendiga, kuni jõuab põhjuppunktini (n == 0 või 1), seejärel hakkab ta tulemusi tagastama kutsungite ahelas.
Oluline on, et rekursiivsel funktsioonil oleks põhjuppunkt, vastasel juhul on kutsed lõpmatud ja põhjustavad virna ülekülluse.