Fonction récursive qui ne renvoie rien

Résolu
spongeday - Modifié le 19 janv. 2024 à 03:36
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 19 janv. 2024 à 12:09

Bonjour,

Je fais des exercices sur la programmation récursive et je ne comprends pas quelque chose (j'ai fait des tests je n'arrive pas à trouver le problème).

Les deux fonctions suivantes doivent faire la même chose mais la première fonction n'affiche le pgcd que si je rentre directement b=0. Si j'entre un couple (a,b) la fonction va jusqu'au bout, va bien dans la partie "if b==0" (testé par des affichages print) mais la fonction ne renvoie rien. La fonction pgcd2 fonctionne sans problème.

Quelqu'un a une idée du problème?

def pgcd(a,b):
    print(a,b)
    if b==0:
        return a
    else:
        pgcd(b,a%b)
        
def pgcd2(a,b):
    print(a,b)
    if a==0:
        return(b)
    else:
        return pgcd2(b%a,a)
Windows / Firefox 121.0

1 réponse

Je viens de voir qu'il manque un return dans la première fonction. Je ne sais pas effacer mon sujet (j'ai cherché mais je ne trouve pas)

0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
Modifié le 19 janv. 2024 à 12:10

Bonjour,

Effacer: non, ta question pourrait servir à d'autres

Le marquer comme résolu suffit 

0