Aller - Récursivité

La récursivité est le processus de répétition d'éléments d'une manière auto-similaire. Le même concept s'applique également aux langages de programmation. Si un programme permet d'appeler une fonction à l'intérieur de la même fonction, alors il est appelé un appel de fonction récursif. Jetez un œil à l'exemple suivant -

func recursion() {
   recursion() /* function calls itself */
}
func main() {
   recursion()
}

Le langage de programmation Go prend en charge la récursivité. Autrement dit, il permet à une fonction de s'appeler. Mais tout en utilisant la récursivité, les programmeurs doivent faire attention à définir une condition de sortie de la fonction, sinon cela deviendra une boucle infinie.

Exemples de récursivité dans Go

Les fonctions récursives sont très utiles pour résoudre de nombreux problèmes mathématiques tels que le calcul factoriel d'un nombre, la génération d'une série de Fibonacci, etc.

Exemple 1: Calcul factoriel à l'aide de la récursivité dans Go

L'exemple suivant calcule la factorielle d'un nombre donné à l'aide d'une fonction récursive -

package main

import "fmt"

func factorial(i int)int {
   if(i <= 1) {
      return 1
   }
   return i * factorial(i - 1)
}
func main() { 
   var i int = 15
   fmt.Printf("Factorial of %d is %d", i, factorial(i))
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Factorial of 15 is 1307674368000

Exemple 2: Série Fibonacci utilisant la récursivité dans Go

L'exemple suivant montre comment générer une série de Fibonacci d'un nombre donné à l'aide d'une fonction récursive -

package main

import "fmt"

func fibonaci(i int) (ret int) {
   if i == 0 {
      return 0
   }
   if i == 1 {
      return 1
   }
   return fibonaci(i-1) + fibonaci(i-2)
}
func main() {
   var i int
   for i = 0; i < 10; i++ {
      fmt.Printf("%d ", fibonaci(i))
   }
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

0 1 1 2 3 5 8 13 21 34