Partage
  • Partager sur Facebook
  • Partager sur Twitter

récursivité en java

Fonction récursive

    15 janvier 2019 à 12:19:16

    Bonjour tout le monde!

    J'ai un petit souci de compréhension d'un code source comprenant une fonction récursive en Java! En fait je voudrais comprendre comment la machine procède pour obtenir le résultat ci dessous. Le code et le résultat est les suivants : 

    4

    2

    1

    1

    2

    1

    1

    public class Rec {
        /**
         * @param args the command line arguments
         */
        public static void F1(int i){
        if (i>0) {
            System.out.println(i);
            F1(i/2);
            F1(i/2);
        }
    }
        public static void main(String[] args) {
            F1(4);
        }
    }
    • Partager sur Facebook
    • Partager sur Twitter
      15 janvier 2019 à 16:24:51

      1ère étape :

      F1(4) => tu affiches 4.

      - F1(4/2) => tu affiches 2.

      -- F1(2/2) => Tu affiches 1. (Ici l'appel F1(1/2) ne fait rien car tu as un int en paramètre).

      -- F1(2/2) => Tu affiches 1.

      - F1(4/2) => Tu affiches 2. On arrive enfin au 2eme appel F1(2), il a fallu le temps d'appeler toutes les sous méthodes du 1er F1(2).

      -- F1(2/2) => Tu affiches 1.

      -- F1(2/2) => Tu affiches 1.

      Voila.

      • Partager sur Facebook
      • Partager sur Twitter

      récursivité en java

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown