C Recursão
C Recursão
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 a recursão funciona?
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 uma ramificação faz a chamada recursiva e outra não.
Exemplo:soma de números naturais usando recursão
#include <stdio.h>
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;
}
Saída
Enter a positive integer:3 sum = 6
Inicialmente, o
sum() é chamado do main() função com número passado como argumento. Suponha que o valor de n dentro de
sum() é 3 inicialmente. Durante a próxima chamada de função, 2 é passado para o sum() função. Este processo continua até n é igual a 0. Quando n for igual a 0, o
if a condição falha e o else parte é executada retornando a soma dos inteiros para o 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 isto, a recursão é um conceito importante. É frequentemente usado em estrutura de dados e algoritmos. Por exemplo, é comum usar a recursão em problemas como travessia de árvore.
Linguagem C
- C# Hello World - Seu primeiro programa em C#
- Palavras-chave e identificadores C#
- Variáveis C# e tipos de dados (primitivos)
- Operadores C#
- Operadores C# Bitwise e Bit Shift
- Entrada e saída básica em C#
- Expressões, instruções e blocos em C# (com exemplos)
- Comentários em C#
- Instrução C# switch
- C# ternário (? :) Operador