Você deve usar a recursão para resolver esses problemas.
É possível resolvê-los de maneira não recurtada e você provavelmente ficará tentado a usar ferramentas que você já entende. No entanto, isso derrota o objetivo deste exercício, que deve se tornar mais confortável usando recursão.
Para cada um desses exercícios, sem usar nenhum código, você deve identificar o seguinte:
Inicie cada problema entendendo o problema e apresentando alguma entrada de amostra e saída. Em alguns dos exercícios, fornecemos entradas e saídas de amostra para sua conveniência.
Escreva uma função recursiva que conte quantas ovelhas pularem sobre a cerca. Seu programa deve ter um número como entrada. Esse número deve ser o número de ovelhas que você tem. A função deve exibir o número junto com a mensagem "Outra ovelha pula sobre a cerca" até que não haja mais ovelhas.
Escreva uma função chamada PowerCalculator () que leva dois parâmetros, um número inteiro como base e outro número inteiro como expoente. A função retorna o valor da base aumentada ao poder do expoente. Use apenas expoentes maiores ou iguais a 0 (números positivos)
-PowerCalculator (10,2) deve retornar 100 -PowerCalculator (10, -2) deve retornar o expoente deve ser> = 0
Escreva uma função que reverte uma string. Pegue uma string como entrada, inverta a string e retorne a nova string.
Calcule o enésimo número triangular. Um número triangular conta os objetos que podem formar um triângulo equilátero. O enésimo número triangular é o número de pontos que compõem um triângulo com n pontos de um lado e é igual à soma dos N números naturais de 1 a n. Esta é a sequência de números triangulares: 1, 3, 6, 10, 15, 21, 28, 36, 45.
Escreva uma função recursiva que divida uma string baseada em um separador (semelhante a string.prototype.split). Não use a função dividida do JS Array para resolver esse problema.
Escreva uma função recursiva que imprima a sequência de Fibonacci de um determinado número. A sequência de Fibonacci é uma série de números em que cada número é a soma dos 2 números anteriores. Por exemplo, o 7º número de Fibonacci em uma sequência de Fibonacci é 13. A sequência parece o seguinte: 1, 1, 2, 3, 5, 8, 13.
Escreva uma função recursiva que encontre o fatorial de um determinado número. O fatorial de um número pode ser encontrado multiplicando esse número por cada número entre si e 1. Por exemplo, o fatorial de 5 é 5 * 4 * 3 * 2 * 1 = 120.
Você entrou em um labirinto e precisa encontrar sua saída. Existem mais de um caminho possível através do labirinto até o ponto de saída único. Escreva uma função recursiva que o ajudará a encontrar um possível caminho através do labirinto.
O labirinto é representado como uma matriz n*M. O ponto de partida é o canto superior esquerdo e a saída é indicada por e. Para fins de simplicidade, use o canto inferior direito do labirinto como a saída. Você não pode sair dos limites do labirinto. O labirinto tem passagens bloqueadas e você não pode passar por elas. Essas passagens bloqueadas são indicadas por *. Passar por uma célula bloqueada, além de passar por uma célula que você já passou antes, é proibido.
Para o labirinto grande na broca, um possível caminho de saída pode ser rrddllddrrrrrr
Use o labirinto grande acima e modifique sua solução para encontrar todos os caminhos de saída possíveis através do labirinto. Para encontrar todos os caminhos de saída possíveis através do labirinto, pense em quantos lugares você pode se mover a cada turno. Possivelmente para cima, para baixo, para a esquerda ou à direita?
Observe que este labirinto tem 3 caminhos de saída. Sua função recursiva deve imprimir todos os três caminhos com as direções adequadas. Por exemplo, dado o labirinto acima, o programa deve gerar o seguinte:
Um anagrama é qualquer palavra ou frase que use as letras de uma palavra ou frase ("sujeito") em outra ordem reorganizada. Escreva uma função que cria uma lista de anagrama, listando todos os rearranjos de uma determinada palavra. Por exemplo, se os tipos de usuário "leste", o programa deverá listar todas as 24 permutações, incluindo "Eats", "ETAs", "Chás" e não palavras como "TSAE".
Dica: para o seu algoritmo, convém pensar em um prefixo e usá -lo para criar as novas palavras. Por exemplo, dado "leste", use "e" como um prefixo e coloque -o na frente de todas as 6 permutações de "ast" - "ast", "ats", "sáb", "sta", "tas" e "tsa". Isso lhe dará as palavras "Oriente", "Eats", "Esat", "Este", "Etas" e "Etssa". Continue assim até encontrar todos os anagramas para "leste". Em seguida, você pode usar "A" como um prefixo e permite as palavras restantes "EST". Para "leste", deve haver 24 palavras.
Escreva uma função recursiva que imprima o objeto de gráfico da organização na broca. Sua saída deve ser como mostrado na broca, com recuo adequado para mostrar a hierarquia.
Escreva uma função recursiva que imprima a representação binária de um determinado número. Por exemplo, o programa deve tomar 3 como entrada e imprimir 11 como saída, ou 25 como entrada e imprimir 11001 como uma saída. Observe que a representação binária de 0 deve ser 0.