Explication fonction récursive

Résolu/Fermé
Sébastien - Modifié par Sébastien le 18/08/2015 à 23:18
 Sébastien - 19 août 2015 à 14:14
Bonjour,


pouvez-vous m'expliquer c'est quoi fonction récursive ? Je pas bien compris.

par exemple :

public static void hanoi(int nbr, char src, char get, char var){
  switch(nbr){
   case 1:
    System.out.println("Deplacer un disuqe de " + src + " vers " + get);
   break;
   
   case 2:
    System.out.println("Deplacer un disuqe de " + src + " vers " + var);
    System.out.println("Deplacer un disuqe de " + src + " vers " + get);
    System.out.println("Deplacer un disuqe de " + var + " vers " + get);
   break;
   default:
    hanoi(nbr-1, src, var, get);
    
    System.out.println("Deplacer un disuqe de " + src + " vers " + get);
    
    hanoi(nbr-1, var, get, src);
  }
 }


Merci

2 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
19 août 2015 à 08:14
Bonjour,

Les Tours de Hanoï c'est un classique : explications sur Wikipedia
0
Bonjour, merci pour votre réponse, mais le problème que je n'arrive pas comprendre comment ça fonction les fonctions récursive ? Sinon le Hanoi c'est juste une exemple pour vous montrer quoi je parle.
Merci encore
0
speedzealot Messages postés 18 Date d'inscription vendredi 24 juillet 2015 Statut Membre Dernière intervention 17 novembre 2015 3
Modifié par speedzealot le 19/08/2015 à 13:59
Pour faire simple : teste ca, tu devrai comprendre par toi-même le fonctionnement d'une fonction récursive (une fonction est récursive quand elle s'appelle elle-même) :)


 public static void main(final String[] args) {
  foo(0);
 }
 
 
 private static int foo(int a) {
      int b = a;
      if (b < 10) b += foo(a + 1);
      System.out.println("Affichage dans foo(" + a +  "). Valeur de b :  " + b);
      return b;
 }

0
Bonjour, merci pour votre réponse et pour le code, je vais le regarder.
Merci encore.
0