La Multiplication de la fonction avec la récursivité en Python
J'ai besoin d'écrire la fonction mult( n, m ) qui devrait sortir le produit de deux entiers n et m. Je suis limité à l'utilisation d'addition/soustraction/négation opérateurs, ainsi que la récursivité.
C'est ce que j'ai à ce jour:
def mult( n, m ):
if m == 0:
return 0
elif m < 0:
return n - n(m+1)
else:
return n + n(m-1)
Quelqu'un peut m'aider svp parce que je ne peux pas la comprendre!
- Quel est votre problème? Veuillez donner un exemple pour l'entrée et la sortie.
- Il n'y a pas de récursivité dans le code.
- Notez qu'il est beaucoup plus simple à manipuler des arguments négatifs si vous remarquez que
mult(n, m) == -mult(n, -m)
.
Vous devez vous connecter pour publier un commentaire.
Que vous essayez d'appeler
n(m+1)
dans votreelif
etelse
bloc, puisque vous ditesn
est un entier, c'est le problème, vous devez appelermult()
fonction récursive envoin
etm+1
oum-1
en tant que paramètres.Un autre problème est que vous devez convertir le résultat de
n - mult(n, m+1)
négatif avant de revenir.Exemple -
Démonstration par l'exemple -
La récursivité, vous devez appeler la fonction elle-même
La façon la plus simple d'écrire en python en utilisant la récursivité: