diff --git a/Algo/Séminaire/Exercices seminaire.md b/Algo/Séminaire/Exercices seminaire.md index 1b753d9..bb243f4 100644 --- a/Algo/Séminaire/Exercices seminaire.md +++ b/Algo/Séminaire/Exercices seminaire.md @@ -375,7 +375,12 @@ let rec puissance x n = else x*puissance x (n-1);; -let puissance_better x n = - let rec pb = function - +let rec puissance_better x n = + if n = 0 then + 1 + else if n mod 2 = 0 then + let pb = puissance_better x (n/2) in pb*pb + else + let pb_odd = puissance_better x (n/2) * n in pb_odd*pb_odd;; + ``` \ No newline at end of file