QCM - Récursivité

QCM 03

Pour s’entraîner

  1. Cette fonction est-elle récursive?
def factorielle(n):
    if n == 0:
        return 1
    else:
        return n * factorielle(n-1)
  • oui
  • non
  • oui: il y a une condition d’arrêt et un appel récursif.
  • non
  1. Quelle est la condition d’arrêt dans cette fonction récursive ?
def countdown(n):
    if n == 0:
        print("Décollage !")
    else:
        print(n)
        countdown(n-1)
  • n == 0
  • n == 1
  • n < 0
  • Il n’y a pas de condition d’arrêt
  • n == 0
  • n == 1
  • n < 0
  • Il n’y a pas de condition d’arrêt
  1. Cette fonction est-elle correctement écrite pour calculer la somme des nombres de 1 à n de manière récursive ?
def sum_to_n(n):
    return n + sum_to_n(n-1)
  • Oui
  • Non, il manque une condition d’arrêt
  • Non, l’appel récursif est incorrect
  • Non, la fonction ne renvoie rien
  • Oui
  • Non, il manque une condition d’arrêt
  • Non, l’appel récursif est incorrect
  • Non, la fonction ne renvoie rien
  1. Quelle sera la sortie de cette fonction pour fibonacci(3) ?
def fibonacci(n):
    if n <= 1:
        return n
    else:
        return fibonacci(n-1) + fibonacci(n-2)
  • 2
  • 3
  • 4
  • 5
  • 2: fibonacci(3) = fibonacci(2) + fibonacci(1)
  • 3
  • 4
  • 5