C - Recursão
A recursão é o processo de repetir itens de maneira auto-semelhante. Em linguagens de programação, se um programa permite que você chame uma função dentro da mesma função, ela é chamada de chamada recursiva da função.
void recursion() { recursion(); /* function calls itself */ } int main() { recursion(); }
A linguagem de programação C suporta recursão, ou seja, uma função para chamar a si mesma. Mas ao usar a recursão, os programadores precisam ter cuidado para definir uma condição de saída da função, caso contrário ela entrará em um loop infinito.
Funções recursivas são muito úteis para resolver muitos problemas matemáticos, como calcular o fatorial de um número, gerar séries de Fibonacci, etc.
Número fatorial
O exemplo a seguir calcula o fatorial de um determinado número usando uma função recursiva −
Demonstração ao vivo
#include <stdio.h> unsigned long long int factorial(unsigned int i) { if(i <= 1) { return 1; } return i * factorial(i - 1); } int main() { int i = 12; printf("Factorial of %d is %d\n", i, factorial(i)); return 0; }
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
Factorial of 12 is 479001600
Série de Fibonacci
O exemplo a seguir gera a série de Fibonacci para um determinado número usando uma função recursiva −
Demonstração ao vivo
#include <stdio.h> int fibonacci(int i) { if(i == 0) { return 0; } if(i == 1) { return 1; } return fibonacci(i-1) + fibonacci(i-2); } int main() { int i; for (i = 0; i < 10; i++) { printf("%d\t\n", fibonacci(i)); } return 0; }
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
0 1 1 2 3 5 8 13 21 34
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# break
- C# continue declaração