Programação  
 
Conhecimento computador >> Programação >> Programação De Computador Idiomas >> 
Como resolver recursão
recursão é um conceito poderoso no campo da ciência da computação, mas pode ser difícil para iniciantes para entender. Recursão envolve uma função ou método invocando -se repetidamente em um contexto diferente , até um contexto de "base" é atingido e voltou . Em outras palavras , para resolver um problema , o programa recontexualizes como um problema um pouco diferente . Ao implementar um algoritmo recursivo , considere sempre a forma mais simples do problema e estabelecer este exemplo simplificado como um " caso base ", que todas as outras versões do problema fará referência . Instruções
1

Defina o cabeçalho de uma função - o nome da função e seus insumos. Por exemplo, uma função que encontra um número de Fibonacci em particular pode ter a seguinte aparência :

fib (int n) {}

Aqui , a função calcula a " enésima " número de Fibonacci na seqüência .
2

Anote como a função será chamada genericamente. Por exemplo, quando você chama fib ( ), você vai usar um número inteiro como argumento e registrar o número inteiro que ele calcula :

int resultado = fib ( x);
3

Definir o "caso base" de seu problema de recursão. Pode haver vários casos base . Como a seqüência de Fibonacci requer dois números, você vai precisar de dois casos base para implementar sua solução

if ( n == 0) return 0; . If ( n == 1) return 1;
< br > 4

Definir o passo recursivo de seu problema de recursividade como uma versão menor, mais simples do mesmo problema , que faz referência ao exemplo de invocação a partir do Passo 2. No nosso exemplo , a sequência é uma sequência de Fibonacci matemático em que cada número da linha é a soma dos dois anteriores números em sequência . O algoritmo para encontrar um número de Fibonacci particular deve , portanto, invocar -se duas vezes, uma para o número anterior e uma vez para o número antes do número anterior :

int result1 = fib (n- 1); int result2 = fib ( n- 2);

retornar result1 + result2 ;
5

Coloque a função em conjunto, por exemplo :

fib (int n) {if ( n == 0) return 0; //caso base 1else if ( n == 1) return 1; caso //base 2

else {//recursiva stepint result1 = fib (n- 1); int result2 = fib (n- 2);

retornar result1 + result2 ;} }


a estrutura do " caso base " e " passo recursivo " será o mesmo para todas as funções recursivas , embora possa haver vários casos base e as etapas recursivas longos .

Anterior :

Próximo : No
  Os artigos relacionados
·Como convolve uma função em MATLAB 
·O que faz Alias ​​média no I /O de arquivos 
·Vantagens e Desvantagens de um nanocomputer 
·. Como usar um arquivo personalizado CLA 
·O que é um cliente UML 
·A diferença entre SOAP e Web Service RESTO 
·Definição de uma Exceção de baixo nível 
·Como construir um Developer Network 
·Erro de sintaxe durante a depuração 
·O que é um PDB no Visual Studio 
  Artigos em destaque
·Como detectar um evento com WIA Espera 
·Você pode anexar um PDF para um alvo exato no e-mail E…
·Existe uma vantagem de usar um argumento em vez de decl…
·Como aumentar o percentual 'Executar para analisar ' no…
·Como usar Skyboxes em GtkRadiant 
·Como executar a alocação de memória dinâmica em C +…
·Métodos WSH Objeto 
·Funções de erro Fortran 
·Como criar um Preloader FLV em AS3 
·O que é um destrutor virtual em C 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados