hanoi.ml 661 B

123456789101112131415161718192021222324
  1. let rec hanoi n src dest spare =
  2. if n = 0 then ()
  3. else (
  4. hanoi (n - 1) src spare dest;
  5. print_endline ("Move disk " ^ string_of_int n ^ " from " ^ src ^ " to " ^ dest);
  6. hanoi (n - 1) spare dest src
  7. );;
  8. hanoi 2 "A" "B" "C";;
  9. let rec fibonacciterm n current next =
  10. match n with
  11. | 0 -> current
  12. | 1 -> next
  13. | _ -> fibonacciterm (n - 1) next (current + next);;
  14. let rec max_index lst start =
  15. if start = (List.length lst) - 1 then
  16. start (* Cas de base : le dernier élément de la liste *)
  17. else
  18. let max_idx = max_index lst (start + 1) in
  19. if List.nth lst start >= List.nth lst max_idx then
  20. start
  21. else
  22. max_idx