Sobes.tech
Junior — Middle

Тавзеҳ диҳед, ки истифодаи функсияҳои рекурсив дар барномасозӣ чӣ маъно дорад ва онҳо чӣ гуна кор мекунанд.

sobes.tech AI

Ҷавоб аз AI

Функсияи рекурсивӣ — ин функсияест, ки худро барои ҳалли вазифа даъват мекунад. Дар барномасозӣ, рекурсия барои тақсим кардани вазифаи мураккаб ба вазифаҳои хурдтар ва оддӣ аз ҳамин навъ истифода мешавад.

Принсипи кор:

  • Функсия худро бо аргументи тағирёфта даъват мекунад, то ҳалли онро ба ҳолати асосӣ наздиктар кунад.
  • Ҳолати асосӣ шарте аст, ки дар он рекурсия қатъ мешавад, то аз даъватҳои беохир пешгирӣ шавад.

Масалан дар Go — ҳисоб кардани факториали як адад:

package main
import "fmt"

func factorial(n int) int {
    if n == 0 {
        return 1 // ҳолати асосӣ
    }
    return n * factorial(n-1) // даъвати рекурсивӣ
}

func main() {
    fmt.Println(factorial(5)) // 120
}

Рекурсия барои кор бо дарахтҳо, графҳо, тақсим кардани вазифаҳо, хеле қулай аст, аммо эҳтиёт кардан лозим, ки аз пуршавии стек пешгирӣ шавад.