récursivité est un concept puissant dans le domaine de l'informatique , mais il peut être difficile pour les débutants à saisir. Récursivité implique une fonction ou méthode elle-même en invoquant à plusieurs reprises dans un contexte différent jusqu'à un contexte « de base » est atteint et retourné. En d'autres termes , pour résoudre un problème , le programme recontexualizes comme un problème légèrement différent . Lors de l'implémentation d'un algorithme récursif , toujours tenir compte de la forme la plus simple du problème et mettre en place cet exemple simplifié comme un « scénario de base », qui toutes les autres versions du problème feront référence . Instructions
1
Définir l'en-tête d'une fonction - le nom de la fonction et de ses entrées. Par exemple, une fonction qui trouve un nombre de Fibonacci particulier peut se présenter comme suit:
fib ( int n) {}
Ici, la fonction calcule le nombre " nième " Fibonacci de la séquence .
2
Notez comment la fonction sera appelée génériquement . Par exemple , lorsque vous appelez fib ( ) , vous devez utiliser un entier comme argument et enregistrer l'entier qu'il calcule :
int result = fib ( x ) ;
3
définir le « scénario de base» de votre problème de récursivité. Il peut y avoir plusieurs cas de base. Comme la séquence de Fibonacci nécessite deux numéros, vous aurez besoin de deux cas de base pour mettre en œuvre sa solution
if ( n == 0) return 0; . If ( n == 1) return 1;
< br > 4
Définir l'étape récursive de votre problème de récursivité comme une version plus petite et plus simple du même problème, référençant l'exemple d'invocation de l'étape 2 . Dans notre exemple, la suite de Fibonacci est une séquence mathématique où chaque numéro de la ligne est la somme des deux nombres précédents dans la séquence . L'algorithme pour trouver un nombre de Fibonacci particulier doit donc se prévaloir deux fois , une fois pour le numéro précédent et une fois pour le numéro avant le numéro précédent :
int result1 = fib ( n-1) ; int result2 = fib ( n-2) ;
retour result1 + result2 ;
5
Mettez la fonction ensemble, par exemple :
fib ( int n) {if ( n == 0) return 0; cas 1else //base if ( n == 1) return 1; //base 2 cas
else {//récursive stepint result1 = fib ( n-1) ; int result2 = fib (n -2);
retour result1 + result2 ;} }
la structure du «scénario de base » et « étape récursive " sera la même pour toutes les fonctions récursives, s'il peut y avoir plusieurs scénarios de référence et les longues étapes récursives .