C Recursão (função recursiva)

Índice

Neste tutorial, você aprenderá a escrever funções recursivas em programação C com a ajuda de um exemplo.

Uma função que chama a si mesma é conhecida como função recursiva. E, esta técnica é conhecida como recursão.

Como funciona a recursão?

 void recurse () (… recurse (); …) int main () (… recurse (); …)

A recursão continua até que alguma condição seja atendida para evitá-la.

Para evitar a recursão infinita, a instrução if… else (ou abordagem semelhante) pode ser usada onde um branch faz a chamada recursiva e outro não.

Exemplo: soma de números naturais usando recursão

 #include int sum(int n); int main() ( int number, result; printf("Enter a positive integer: "); scanf("%d", &number); result = sum(number); printf("sum = %d", result); return 0; ) int sum(int n) ( if (n != 0) // sum() function calls itself return n + sum(n-1); else return n; ) 

Resultado

 Insira um número inteiro positivo: 3 soma = 6

Inicialmente, o sum()é chamado a partir da main()função com número passado como argumento.

Suponha que o valor de n dentro sum()seja 3 inicialmente. Durante a próxima chamada de função, 2 é passado para a sum()função. Este processo continua até que n seja igual a 0.

Quando n é igual a 0, a ifcondição falha e a elseparte é executada, retornando a soma dos inteiros para a main()função.

Vantagens e desvantagens da recursão

A recursão torna o programa elegante. No entanto, se o desempenho for vital, use loops, pois a recursão é geralmente muito mais lenta.

Dito isso, a recursão é um conceito importante. É freqüentemente usado em algoritmos e estrutura de dados. Por exemplo, é comum usar recursão em problemas como travessia de árvore.

Artigos interessantes...