From 13970cb8314ebf076f28c796e0755625665c7150 Mon Sep 17 00:00:00 2001 From: "flyingscorpio@arch-desktop" Date: Fri, 17 Sep 2021 13:32:48 +0200 Subject: [PATCH] Add somme-chiffres in algo and py --- algorithmique/recursivite/somme-chiffres.algo | 14 +++++++++++ algorithmique/recursivite/somme-chiffres.py | 24 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 algorithmique/recursivite/somme-chiffres.py diff --git a/algorithmique/recursivite/somme-chiffres.algo b/algorithmique/recursivite/somme-chiffres.algo index dcd7ba2..d6bb675 100644 --- a/algorithmique/recursivite/somme-chiffres.algo +++ b/algorithmique/recursivite/somme-chiffres.algo @@ -1,4 +1,18 @@ Algorithme : Somme des chiffres d'un entier N donné Début + + Fonction SommeChiffres(N : int, somme : int) + chiffre : Entier <- N[0] + Si chiffre = NIL + Retourner(somme) + Sinon + somme = somme + chiffre + Dépiler(N) + Retourner(SommeChiffres(N, somme)) + FinSi + FinFonction + + Afficher(SommeChiffres(123, 0)) + Fin diff --git a/algorithmique/recursivite/somme-chiffres.py b/algorithmique/recursivite/somme-chiffres.py new file mode 100644 index 0000000..55a18fe --- /dev/null +++ b/algorithmique/recursivite/somme-chiffres.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python + +"""Algorithme : Somme des chiffres d'un entier N donné""" + + +def main(): + print(SommeChiffres("123")) + + +def SommeChiffres(N : str, somme: int = 0) -> int: + nombre = [int(n) for n in N] + try: + chiffre = nombre[0] + except IndexError: + return somme + else: + somme += chiffre + nombre.pop(0) + N = "".join(str(n) for n in nombre) + return SommeChiffres(N, somme) + + +if __name__ == "__main__": + main()