Produit des entiers successifs

Exercice

Compléter la fonction factorielle répondant à la spécification donnée dans la chaîne de documentation.

🐍 Script Python
def factorielle(n): 
    """Signature factorielle(n:int)->int
    Précondition : n >= 0
    Postcondition : 
    renvoie 1 si n == 0 ou le produit 
    des entiers successifs entre 1 et n    
    """  
    #précondition
    assert n >= 0
    #à compléter
###
benchmark = ['factorielle(0) == 1', bksl-nl'factorielle(1) == 1', bksl-nl'factorielle(2) == 2',bksl-nl'factorielle(4) == 24',bksl-nl'factorielle(13) == 6227020800']bksl-nlbksl-nl 5/5

def factorielle(n): bksl-nl """Signature factorielle(n:int)->intbksl-nl Précondition : n >= 0bksl-nl Postcondition : bksl-nl renvoie 1 si n == 0 ou le produit bksl-nl des entiers successifs entre 1 et n bksl-nl """ bksl-nl #préconditionbksl-nl assert n >= 0bksl-nl #à compléterbksl-nlbksl-nl# Solution 1bksl-nlbksl-nldef factorielle(n): bksl-nl """Signature factorielle(n:int)->intbksl-nl Précondition : n >= 0bksl-nl Postcondition : bksl-nl renvoie 1 si n == 0 ou le produit bksl-nl des entiers successifs entre 1 et n bksl-nl """ bksl-nl #préconditionbksl-nl assert n >= 0bksl-nl p = 1bksl-nl for k in range(2, n + 1):bksl-nl p = p py-str kbksl-nl return pbksl-nlbksl-nl# Solution 2 (Paradigme fonctionnel niveau terminale)bksl-nlfrom functools import reduce bksl-nlbksl-nldef produit(x, y):bksl-nl return x py-str ybksl-nlbksl-nldef factorielle2(n):bksl-nl assert n >= 0bksl-nl return reduce(produit, range(1, n + 1), 1)bksl-nlbksl-nlbksl-nl

A

Z