Vous devez utiliser la récursivité pour résoudre ces problèmes.
Il est possible de les résoudre de manière non récurrente et vous serez probablement tenté d'utiliser des outils que vous comprenez déjà. Cependant, cela bat le but de cet exercice, qui est de devenir plus à l'aise en utilisant la récursivité.
Pour chacun de ces exercices, sans utiliser de code, vous devez identifier ce qui suit:
Commencez chaque problème en comprenant le problème et en proposant un exemple d'entrée et de sortie. Dans certains des exercices, nous avons fourni des échantillons d'entrées et de sorties pour votre commodité.
Écrivez une fonction récursive qui compte combien de moutons sautent par-dessus la clôture. Votre programme doit prendre un nombre en entrée. Ce nombre devrait être le nombre de moutons que vous avez. La fonction doit afficher le nombre avec le message "Un autre mouton saute par-dessus la clôture" jusqu'à ce qu'il ne reste plus de moutons.
Écrivez une fonction appelée PowerCalculator () qui prend deux paramètres, un entier comme base et un autre entier en tant qu'exposant. La fonction renvoie la valeur de la base soulevée à la puissance de l'exposant. Utiliser uniquement des exposants supérieurs ou égaux à 0 (nombres positifs)
-PowerCalculator (10,2) devrait renvoyer 100 -PowerCalculator (10, -2) devrait renvoyer l'exposant devrait être> = 0
Écrivez une fonction qui inverse une chaîne. Prenez une chaîne en entrée, inversez la chaîne et renvoyez la nouvelle chaîne.
Calculez le nième numéro triangulaire. Un nombre triangulaire compte les objets qui peuvent former un triangle équilatéral. Le nième nombre triangulaire est le nombre de points composant un triangle avec n points sur un côté, et est égal à la somme des n nombres naturels de 1 à n. Il s'agit de la séquence du nombre triangulaire: 1, 3, 6, 10, 15, 21, 28, 36, 45.
Écrivez une fonction récursive qui divise une chaîne basée sur un séparateur (similaire à string.prototype.split). N'utilisez pas la fonction divisée de JS Array pour résoudre ce problème.
Écrivez une fonction récursive qui imprime la séquence Fibonacci d'un numéro donné. La séquence Fibonacci est une série de nombres dans lesquels chaque nombre est la somme des 2 nombres précédents. Par exemple, le 7e nombre de Fibonacci dans une séquence de Fibonacci est de 13. La séquence ressemble à: 1, 1, 2, 3, 5, 8, 13.
Écrivez une fonction récursive qui trouve le factoriel d'un numéro donné. Le facteur d'un nombre peut être trouvé en multipliant ce nombre par chaque nombre entre lui-même et 1. Par exemple, le factoriel de 5 est 5 * 4 * 3 * 2 * 1 = 120.
Vous êtes entré dans un labyrinthe et avez besoin de vous en sortir. Il y a plus d'un chemin possible à travers le labyrinthe au point de sortie unique. Écrivez une fonction récursive qui vous aidera à trouver un chemin possible à travers le labyrinthe.
Le labyrinthe est représenté comme une matrice N * m. Le point de départ est le coin supérieur gauche et la sortie est indiquée par e. À des fins de simplicité, utilisez le coin inférieur droit du labyrinthe comme sortie. Vous ne pouvez pas sortir des limites du labyrinthe. Le labyrinthe a des passages qui sont bloqués et vous ne pouvez pas les traverser. Ces passages bloqués sont indiqués par *. Passer à travers une cellule bloquée ainsi que passer une cellule que vous avez déjà passé auparavant sont interdits.
Pour le grand labyrinthe dans la perceuse, un chemin de sortie possible peut être rrddllddrrrrr
Utilisez le grand labyrinthe ci-dessus et modifiez votre solution afin qu'il trouve tous les chemins de sortie possibles à travers le labyrinthe. Pour trouver tous les chemins de sortie possibles à travers le labyrinthe, pensez au nombre d'endroits où vous pouvez vous déplacer à chaque tour. Peut-être le haut, le bas, la gauche ou la droite?
Notez que ce labyrinthe a 3 chemins de sorties. Votre fonction récursive doit imprimer les trois chemins avec les directions appropriées. Par exemple, compte tenu du labyrinthe ci-dessus, le programme doit sortir ce qui suit:
Un anagramme est un mot ou une phrase qui utilise les lettres d'un mot ou d'une phrase donnée ("sujet") dans un autre ordre réarrangé. Écrivez une fonction qui crée une liste d'anagram, répertoriant tous les réarrangements d'un mot donné. Par exemple, si l'utilisateur type "East", le programme doit répertorier les 24 permutations, y compris "Eats", "Etas", "Teas" et des non-mots comme "TSAE".
Astuce: Pour votre algorithme, vous voudrez peut-être penser à un préfixe et l'utiliser pour créer les nouveaux mots. Par exemple, étant donné "East", utilisez "E" comme préfixe et placez-le devant les 6 permutations de "AST" - "AST", "ATS", "SAT", "STA", "TAS" et "TSA". Cela vous donnera les mots "Est", "mange", "esat", "Esta", "Etas" et "Etsa". Continuez de cette façon jusqu'à ce que vous trouviez toutes les anagrammes pour "Est". Ensuite, vous pouvez utiliser "A" comme préfixe et permuter les mots restants "EST". Pour "Est", il devrait y avoir 24 mots.
Écrivez une fonction récursive qui imprime l'objet du graphique d'organisation dans l'exercice. Votre sortie doit être comme indiqué dans l'exercice avec une indentation appropriée pour montrer la hiérarchie.
Écrivez une fonction récursive qui imprime la représentation binaire d'un numéro donné. Par exemple, le programme doit prendre 3 comme entrée et imprimer 11 en tant que sortie, ou 25 comme entrée et imprimez 11001 en tant que sortie. Notez que la représentation binaire de 0 doit être 0.