50 votes

Comment écrire 2**n - 1 comme fonction récursive?

J’ai besoin d’une fonction qui prend n et renvoie 2<sup>n</sup> - 1 . Cela semble assez simple, mais la fonction doit être récursive. Jusqu’à présent, je n’ai que 2<sup>n</sup>:

L’exercice indique : « Vous pouvez supposer que le paramètre n est toujours un entier positif et supérieur à 0 »

37voto

blhsing Points 57682

Pour résoudre un problème avec une approche récursive, vous devez trouver comment vous pouvez définir la fonction avec une entrée donnée en termes de la même fonction avec une entrée différente. Dans ce cas, puisque `` , vous pouvez faire :

Et alors:

Sorties:

9voto

RafaelC Points 24675

Vous pouvez extraire la partie vraiment récursive vers une autre fonction

Ou vous pouvez définir un indicateur et définir juste quand soustraire


0voto

eMAD Points 13

Avoir un espace réservé pour mémoriser la valeur d’origine de n, puis pour la toute première étape, c’est-à-dire , retourner

0voto

naomik Points 10423

En utilisant un paramètre supplémentaire pour le résultat, `` -

Vous pouvez également l’écrire en utilisant le décalage binaire gauche, `` -

La sortie est la même

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X