Adloun

La pyramide centrée

Exercice · informatique (tronc commun des prépas scientifiques), chapitre 6 — Fonctions récursives

Énoncé

Écrire pyramide(n) qui affiche une pyramide centrée de étages. L'étage (de 1 à ) comporte étoiles précédées de espaces.

Corrigé

Pour que les sous-pyramides conservent le bon alignement, on doit transmettre la hauteur totale comme contexte de largeur :

def etages(k: int, n: int) -> None:
    """Affiche les étages 1 à k d'une pyramide de n étages."""
    if k == 0:
        return
    etages(k - 1, n)
    print(" " * (n - k) + "*" * (2 * k - 1))

def pyramide(n: int) -> None:
    etages(n, n)

Le variant de récursion est (le nombre d'étages restants à tracer), tandis que sert à maintenir le décalage géométrique global invariant lors de la remontée de la pile.

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.