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 .