informatique (tronc commun des prépas scientifiques) · Chapitre 6 · Application directe du cours
La pyramide centrée
Fonctions récursives · niveau 1 (application)
É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.
Exercices semblables
- Les tours de Hanoï corrigé
- Générer dans l'ordre du code de Gray corrigé
- Pile bornée — estimer avant d'exécuter corrigé
- Tracer une exécution corrigé
- Récursions sur les chaînes corrigé