Debe usar la recursión para resolver estos problemas.
Es posible resolverlos de manera no recursiva y probablemente tendrá la tentación de usar herramientas que ya entiende. Sin embargo, eso derrota el propósito de este ejercicio, que es sentirse más cómodo usando la recursión.
Para cada uno de estos ejercicios, sin usar ningún código, se espera que identifique lo siguiente:
Comience cada problema comprendiendo el problema y presentando alguna entrada y salida de muestra. En algunos de los ejercicios hemos proporcionado entradas y salidas de muestra para su conveniencia.
Escribe una función recursiva que cuenta cuántas ovejas saltan sobre la cerca. Su programa debe tomar un número como entrada. Ese número debería ser el número de ovejas que tienes. La función debe mostrar el número junto con el mensaje "Otra oveja salta sobre la cerca" hasta que no queden más ovejas.
Escriba una función llamada PowerCalculator () que toma dos parámetros, un entero como base y otro entero como exponente. La función devuelve el valor de la base elevada al poder del exponente. Use solo exponentes mayores o igual a 0 (números positivos)
-PowerCalculator (10,2) debe devolver 100 -PowerCalculator (10, -2) debería devolver el exponente debe ser> = 0
Escribe una función que invierte una cadena. Tome una cadena como entrada, invierta la cadena y devuelva la nueva cadena.
Calcule el enésimo número triangular. Un número triangular cuenta los objetos que pueden formar un triángulo equilibrado. El enésimo número triangular es el número de puntos que componen un triángulo con n puntos en un lado, y es igual a la suma de los n números naturales de 1 a n. Esta es la secuencia del número triangular: 1, 3, 6, 10, 15, 21, 28, 36, 45.
Escriba una función recursiva que divide una cadena basada en un separador (similar a String.Prototype.split). No use la función dividida de JS Array para resolver este problema.
Escriba una función recursiva que imprima la secuencia Fibonacci de un número dado. La secuencia Fibonacci es una serie de números en los que cada número es la suma de los 2 números anteriores. Por ejemplo, el séptimo número Fibonacci en una secuencia de Fibonacci es 13. La secuencia se ve de la siguiente manera: 1, 1, 2, 3, 5, 8, 13.
Escriba una función recursiva que encuentre el factorial de un número determinado. El factorial de un número se puede encontrar multiplicando ese número por cada número entre sí mismo y 1. Por ejemplo, el factorial de 5 es 5 * 4 * 3 * 2 * 1 = 120.
Has entrado en un laberinto y necesitas encontrar tu salida. Hay más de un camino posibles a través del laberinto hasta el punto de salida único. Escriba una función recursiva que lo ayude a encontrar un camino posible a través del laberinto.
El laberinto se representa como una matriz n*m. El punto de partida es la esquina superior izquierda y la salida se indica por e. Para el propósito de simplicidad, use la esquina inferior derecha del laberinto como la salida. No puedes salir de los límites del laberinto. El laberinto tiene pasajes bloqueados y no puedes pasar por ellos. Estos pasajes bloqueados se indican por *. Pasar a través de una celda bloqueada y pasar a través de una celda que ya ha pasado antes está prohibida.
Para el laberinto grande en el taladro, una posible ruta de salida puede ser rrddllddrrrrrr
Use el laberinto grande anterior y modifique su solución para que encuentre todas las rutas de salida posibles a través del laberinto. Para encontrar todas las rutas de salida posibles a través del laberinto, piense en cuántos lugares puede moverse en cada turno. ¿Posiblemente arriba, abajo, izquierda o derecha?
Observe que este laberinto tiene 3 caminos de salida. Su función recursiva debe imprimir las tres rutas con las instrucciones adecuadas. Por ejemplo, dado el laberinto anterior, el programa debe generar lo siguiente:
Un anagrama es cualquier palabra o frase que use las letras de una palabra o frase dada ("sujeto") en otro orden reorganizado. Escriba una función que cree una lista de anagramas, enumerando todos los reordenamientos de una palabra determinada. Por ejemplo, si el usuario tipos "Este", el programa debe enumerar las 24 permutaciones, incluidas "comidas", "ETAS", "tés" y no palabras como "TSAE".
Sugerencia: para su algoritmo, es posible que desee pensar en un prefijo y usarlo para crear las nuevas palabras. Por ejemplo, dado "este", use "e" como prefijo y colóquelo frente a las 6 permutaciones de "AST" - "AST", "ATS", "SAT", "STA", "TAS" y "TSA". Esto le dará las palabras "este", "come", "esat", "esta", "etas" y "etsa". Continúe de esta manera hasta que encuentre todos los anagramas para "Este". Entonces puede usar "A" como prefijo y permitir las palabras restantes "EST". Para "Este", debería haber 24 palabras.
Escriba una función recursiva que imprima el objeto de la tabla de organización en el taladro. Su salida debe ser como se muestra en el taladro con una sangría adecuada para mostrar la jerarquía.
Escriba una función recursiva que imprima la representación binaria de un número determinado. Por ejemplo, el programa debe tomar 3 como entrada e imprimir 11 como salida, o 25 como entrada e imprimir 11001 como salida. Tenga en cuenta que la representación binaria de 0 debe ser 0.