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();