Prog Caml : Ecrire tableau_contient avec un while

Modifiez le programme suivant pour qu'il fasse exactement la même chose, mais avec une boucle while

let read_int() = Scanf.scanf " %d" (fun x -> x);;

let read_int_array () =
  let taille = read_int() in
  let tab = Array.make taille 0 in
  for i = 0 to pred taille do
     let valeur = read_int() in
     tab.(i) <- valeur;
  done;
  tab 
;;

let tableau_contient tab clef =
  let trouve = ref false in
  let taille = Array.length tab in
  for i = 0 to pred taille do
     if tab.(i) = clef
        then trouve := true;
  done;
  !trouve;;

let t = read_int_array () in
let c = read_int () in
print_string( string_of_bool ( tableau_contient t c ) ) ;;


Limites de temps et de mémoire (Python)

  • Temps : 4 s sur une machine à 1 GHz.
  • Mémoire : 1 000 ko.

Source : http://www.france-ioi.org/ Créé par : Arthur Charguéraud.