diff --git a/slides/cours_5.md b/slides/cours_5.md index d8b35a4e0cdf988ba74ebbb8427a032b3a21e7c2..1f7c472da9570a3383d5b2b23cd9fb9f5c05f880 100644 --- a/slides/cours_5.md +++ b/slides/cours_5.md @@ -850,6 +850,42 @@ int pgcd(int n, int m) { } ``` +# La suite de Fibonacci + +## Règle + +$$ +\mathrm{Fib}(n) = \mathrm{Fib}(n-1) + \mathrm{Fib}(n-2),\quad +\mathrm{Fib}(0)=0,\quad \mathrm{Fib}(1)=1. +$$ + +## Exercice: écrire la fonction $\mathrm{Fib}$ en récursif et impératif + +```C +int fib(int n) { + if (n > 1) { + return fib(n - 1) + fib(n - 2); + } else { + return n; + } +} +``` + +```C +int fib_imp(int n) { + int fib0 = 1; + int fib1 = 1; + int fib = n == 0 ? 0 : fib1; + for (int i = 2; i < n; ++i) { + fib = fib0 + fib1; + fib0 = fib1; + fib1 = fib; + } + return fib; +} +``` + + # Exercices pour les semaines sans cours ## Quelques algorithmes à réaliser et poster sur matrix