Prog Caml : Fonction affiche_syracuse en récursif

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.

TIME AND MEMORY LIMITS (Python)

  • Time: 4s on a 1GHz machine.
  • Memory: 1,000 KB.

EXAMPLE

input:

7

output:

7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1

COMMENTS

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

Source: https://www.france-ioi.org. Created by : Arthur Charguéraud.