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

Java Discussion :

De l'itératif au récursif


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 9
    Par défaut De l'itératif au récursif
    Bonjour, je voudrais savoir comment je peux transformer ce programme itératif en un programme récursif. Je vous remercie d'avance
    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
    29
     
    public int chercheEntierConsecutif_v2(int nb) {
            int x0 = -1;
            if (nb > 0 && nb <= tab.length) {
                int i = 0;
                while (x0 < 0 && i <= (tab.length - nb)) {
                    if (compteOccurrences(i) >= nb) {
                        x0 = tab[i];
                    }
                    i++;
                }
     
            }
            return x0;
        }
     
        public int compteOccurrences(int i) {
            boolean b = true;
            int c = 0;
            int x = tab[i];
            while (b && i < tab.length) {
                b = (tab[i] == x);
                if (b) {
                    c++;
                    i++;
                }
            }
            return c;
        }

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    En remplaçant la boucle par l'appel de la même fonction.

    A+.

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 9
    Par défaut
    Je vous remercie de votre réponse, mais ça je le savais déjà, le problème c'est que j'arrive pas à le faire sur ce bout de code. Vous auriez pas une proposition ? Merci

  4. #4
    Membre chevronné Avatar de toutgrego
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2013
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2013
    Messages : 217
    Par défaut
    Salut,

    que doit faire ta méthode exactement ?

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 9
    Par défaut
    Voici ma méthode en un seul code, elle doit trouver un entier qui apparait dans nb cases consécutives d'un tableau.
    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
     
    public int chercheEntierConsecutif(int nb) {
            int x0 = -1;
            if (nb > 0 && nb <= tab.length) {
                int i = 0;
                while (x0 < 0 && i <= (tab.length - nb)) {
                    int x = tab[i];
                    int c = 1;
                    boolean b = true;
                    i++;
                    while (b && i < tab.length && c < nb) {
                        b = (tab[i] == x);
                        if (b) {
                            c++;
                            i++;
                        }
                    }
                    if (c >= nb) {
                        x0 = x;
                    }
                }
     
            }
            return x0;
        }

  6. #6
    Membre chevronné Avatar de toutgrego
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2013
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2013
    Messages : 217
    Par défaut
    Salut,

    voici le code en récursif pour trouver le nombre d’occurrences maximum consécutives d'un élément nb dans un tableau tab :

    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
    public int chercheMaxOccur(Integer[] tab, int i, int maxOccur, int nb) {
            if (i >= tab.length) {
                return maxOccur;
            } else {
                int count = 0;
                while (i < tab.length && tab[i] == nb) {
                    count++;
                    if (count > maxOccur) {
                        maxOccur = count;
                    }
                    i++;
                }
                i++;
            }
            return chercheMaxOccur(tab, i, maxOccur, nb);
        }
    J'ai fait ça vite fait, y'a surement moyen d'améliorer.


    Toutgrego

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. XML/XSL parcours itératif et récursif
    Par greIn dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 07/11/2012, 00h04
  2. Règles de passage de l'itératif au récursif
    Par HASALGO dans le forum Langage
    Réponses: 14
    Dernier message: 20/02/2010, 09h12
  3. algorithme récursif et itératif
    Par amateurc dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 14/11/2009, 01h02
  4. transformer un code itératif en récursif
    Par FstDsi dans le forum Débuter
    Réponses: 28
    Dernier message: 17/10/2009, 10h32
  5. transformer de l'itératif en récursif
    Par hiina dans le forum C
    Réponses: 8
    Dernier message: 27/11/2005, 21h16

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