Oldingi darsda rekursiya g'oyasini ko'rdik — funksiya o'zini chaqiradi, bazaviy holatda to'xtaydi. Endi rekursiya bilan qiymat qaytarishni o'rganamiz.
Faktorial:
5! = 5 * 4 * 3 * 2 * 1 = 120
Rekursiv fikrlash: faktorial(n) = n * faktorial(n - 1)
def faktorial(n):
if n <= 1: # bazaviy holat
return 1
return n * faktorial(n - 1)
print(faktorial(5)) # 120Qanday ishlaydi — har chaqiruv call stack ga tushadi, bazaviy holatda to'xtab, natijalar qaytariladi:
Yig'indi:
yigindi(4) = 4 + 3 + 2 + 1 + 0 = 10
def yigindi(n):
if n == 0:
return 0
return n + yigindi(n - 1)
print(yigindi(4)) # 10Rekursiya formulasi:
faktorial(1) = 1)n * faktorial(n-1))Rekursiv faktorial
Son kiriting va faktorialini rekursiv hisoblang.