Junior — Middle
Ներկայացրեք ռեկուրսիվ կանչերի կոնցեպցիան ծրագրավորման մեջ
sobes.tech AI
Պատասխան AI-ից
Ռեկուրսիվ կանչը այն է, երբ ֆունկցիան ինքն իրեն է կանչում խնդիր լուծելու համար։ Սովորաբար, ռեկուրսիան օգտագործվում է բարդ գործառույթը բաժանելու համար նույն տեսակի ավելի պարզ ենթագործույթների։
Օրինակ՝ հաշվարկել n թվի ֆակտորիալը (n!) — բոլոր թվերի արտադրյալը 1-ից n։
def factorial(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial(n - 1)
Այստեղ, factorial ֆունկցիան ինքն իրեն է կանչում փոքրացված արգումենտով, մինչև հասնի հիմնական դեպքին (n == 0 կամ 1), ապա սկսում է վերադարձնել արդյունքները կանչերի շղթայով։
Կարևոր է, որ ռեկուրսիվ ֆունկցիան ունենա հիմնական դեպք, հակառակ դեպքում կանչերը կլինեն անսահման և կհանգեցնեն stack overflow-ի։