IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

méthodes recursives explication


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Par défaut méthodes recursives explication
    salut,

    je tente de comprendre le fonctionnement de la récursivité , n' ayant vraiment pas compris les Tours de hanoi , j' ai essayé de comprendre comment se déroule la factorielle en récursif

    J' ai essayé de mettre des traces dans le passage mais je n 'arrive vraiment pas a comprendre.Ci dessous le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    import java.util.Scanner ;
     
    public class FactoRec {
     
        public static int factRec (int n ){
            int resultat = 1 ;
              System.out.println ("**** Entree (1) dans facRec **** n = " + n);
            if (n == 0){
                resultat =1;
            }else {
               System.out.println ("**** Entree (2) dans facRec **** n = " + n);
                resultat = n * factRec (n-1);
                System.out.println ("**** Sortie (2) dans facRec **** n = " + n);
            }
              System.out.println ("**** Sortie (1) dans facRec **** n = " + n);
              return resultat;
        }
     
        /** Creates a new instance of FactoRec */
        public static void main (String [] args ) {
            Scanner lc = new Scanner (System.in);
            System.out.println ("Saisir un nombre : " );
            int n = lc.nextInt ();
            System.out.println ("la factorielle du nombre est  : "  + factRec(n));
     
        }
     
    }

    Voila un résultat à l'exécution ,la marque rouge représente l' endroit ou je suis perdu :







    merci a vous

  2. #2
    Membre chevronné
    Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2007
    Messages : 301
    Par défaut
    Je ne sais pas si cela va t'aider mais je te donne le déroulement avec n = 2:

    factRec(2) :
    2 * facRec(1);

    facRec(1) :
    1 * facRec(0);

    facRec(0) :
    return 1;

    factRec(1) : SUITE
    resultat = 1 * (factRec(0) = 1);
    return 1;

    factRec(2) : SUITE
    resultat = 2 * (factRec(1) = 1);
    return 2;

  3. #3
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 44
    Par défaut
    Factoriel(N) = Factoriel(N-1)*N
    = (Factoriel(N-2)*(N-1))*N
    etc.

    donc chaque methode factoriel appelle la meme methode mais avec un parametre differnt (-1 à chaque fois) jusq'a la condition initiale (pour notre cas N=1)

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/11/2010, 14h15
  2. méthode equals() explications
    Par kimlaw95 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 11/05/2009, 17h21
  3. explication débutant méthode / propriété
    Par grinder59 dans le forum C#
    Réponses: 6
    Dernier message: 03/02/2009, 10h28
  4. Explications simple méthode
    Par carldidz dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 11/12/2008, 11h57
  5. [JDOM] Besoin explication de méthodes
    Par calimero2611 dans le forum Format d'échange (XML, JSON...)
    Réponses: 10
    Dernier message: 10/07/2006, 10h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo