En rekursiv metod måste ha ett basfall som talar om när algoritmen är klar.
Metoden anropar sig själv tills den når basfallet.
def countDown(n):
"""Rekursiv funktion som räknar ner"""
print(n)
if(n <= 1):
return
else:
countDown(n-1)
print(countDown(5))
Exempel: Beräkna talsumma med rekursion
Exempel: Talsumman för 4 = 4 + 3 + 2+ 1
s(1) = 1
s(2) = 2 + 1 = 2 + s(1)
s(3) = 3 + 2 + 1 = 3 + s(2)
s(4) = 4 + 3 + 2 + 1 = 4 + s(3)
.....
s(n) = n + s(n-1)
En rekursiv definition till ett problem innehåller basfallet och hur problemet kan lösas genom ett eller flera mindre delproblem
Exempel: Beräkna talsumma med rekursion
Fråga att ställa sig själv: Vad är summan av de n första positiva heltalen?
Rekursivt svar: Summan av de n första positiva talen är n plus summan av de n - 1 första heltalen!
Tänka rekursivt
Kodexempel på rekursion av talsumma
def talsumma(n):
"""Rekursiv funktion som beräknar talsumman av n"""
if(n <= 1):
return 1
else:
return n + talsumma(n-1)
print(talsumma(4))
Exempel på hur rekursion fungerar
n = 4
anropa talsumma(3)
n = 3
anropa talsumma(2)
n = 2
anropa talsumma(1)
n = 1
return 1
return 2 + 1 = 2
return 3 + 2 = 5
return 4 + 5 = 9
Start