On va réécrire dans cette partie les fonctions d'étude de la suite de Syracuse en récursif.
Écrire une fonction récursive nommée affiche_syracuse
prennant en paramètre un entier n
. La fonction affiche d'abord la valeur de n
, suivie d'un espace. Ensuite, si n
est différent de 1, la fonction s'appelle récursivement avec le paramètre (syracuse n)
de manière à afficher les termes suivants de la suite. Lorsque n
vaut 1, on s'arrête.
entrée :
7
sortie :
7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
Code à compléter Caml
let read_int() = Scanf.scanf " %d" (fun x -> x);; let syracuse p = if p mod 2 = 0 then p / 2 else 3 * p + 1 ;; let rec affiche_syracuse n = (*à compléter*) ;; affiche_syracuse (read_int());; print_newline();