La récursion Java est une technique de programmation qui résout un problème en s'appelant dans une fonction. La récursivité est généralement utilisée pour résoudre des problèmes de division pour mieux régner, c'est-à-dire décomposer un gros problème en plusieurs petits problèmes du même type, puis résoudre ces petits problèmes un par un, et enfin combiner les résultats pour obtenir la solution du grand problème.
La structure de base de la récursion Java comprend les parties suivantes :
-
Cas de base : C'est la condition pour mettre fin à la récursion. Lorsque l'ampleur du problème est réduite dans une certaine mesure, le résultat peut être obtenu directement et il n'est pas nécessaire de poursuivre la récursion.
-
Cas récursif : il s'agit de la condition dans laquelle la fonction continue de s'appeler, réduisant généralement la taille du problème, puis continue de s'appeler pour résoudre le sous-problème.
-
Renvoie le résultat : renvoie le résultat du calcul dans le cas récursif à l'appel de couche précédent pour la fusion.
Les algorithmes récursifs incluent : la récursivité, le retour en arrière et les conditions de terminaison
Le processus d’appel de la méthode elle-même au sein d’une méthode est appelé récursivité.
Les conditions qui sont satisfaites dans la méthode mais pas dans la méthode appelante elle-même sont appelées conditions de terminaison récursives.
Le processus de retour au dernier appel dans une méthode est appelé pushback.
Sujet : Trouver n ! Analyse : La factorielle de n peut être équivalente à n * (n-1) ! Équivalent à n * (n-1) * (n-2) ! Équivalent à n * (n-1) * ( n-2) * (n-3) ! Jusqu'à ce que multiplié par 1
public static int f(int n){
if(n==1){ //终止条件
return 1; //回推
}
return n * f(n-1); //递推
}
public static void main(String[] args) {
int result = f(4);
System.out.println(result);
}