From d1ed446938c4fbdc3fea4b8167af0ba7b5ad96fe Mon Sep 17 00:00:00 2001 From: "flyingscorpio@pinebookpro" Date: Tue, 21 Sep 2021 09:37:00 +0200 Subject: [PATCH] Add pyramid --- algorithmique/recursivite/pyramide.algo | 23 +++++++++++++++++++++++ algorithmique/recursivite/pyramide.py | 21 +++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 algorithmique/recursivite/pyramide.algo create mode 100644 algorithmique/recursivite/pyramide.py diff --git a/algorithmique/recursivite/pyramide.algo b/algorithmique/recursivite/pyramide.algo new file mode 100644 index 0000000..de17ac3 --- /dev/null +++ b/algorithmique/recursivite/pyramide.algo @@ -0,0 +1,23 @@ +Algorithme : Dessine une pyramide d'étoiles selon un entier N donné, N étant impair + +Début + Var N : Entier + Var T : Tableau + Var i : Entier = 0 + Fonction CreerPyramide(N : Entier, T: Tableau) + Si N = 0 + Retourner T + Sinon + nombre_etoiles : Entier = 2 * N - 1 + T[i] = ("*" * nombre_etoiles) + i = i + 1 + CreerPyramide(N - 1, T) + FinSi + FinFonction + + T = CreerPyramide(9, []) + Pour i allant de N à 0 /* décroissant pour parcourir le tableau à l'envers */ + Ecrire(T[i]) + FinPour + +Fin diff --git a/algorithmique/recursivite/pyramide.py b/algorithmique/recursivite/pyramide.py new file mode 100644 index 0000000..fa67a39 --- /dev/null +++ b/algorithmique/recursivite/pyramide.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python + +"""Dessine une pyramide d'étoiles selon un entier N donné, N étant impair""" + + +def main() -> None: + for line in reversed(creer_pyramide(9, [])): + print(line) + + +def creer_pyramide(N: int, pyramide: list[str]) -> list[str]: + if N == 0: + return pyramide + else: + nombre_etoiles = 2 * N - 1 + pyramide.append("*" * nombre_etoiles) + return creer_pyramide(N - 1, pyramide) + + +if __name__ == "__main__": + main()