Recursividade
Em C, uma função pode chamar a si mesma. Quando uma função faz uma chamada a si mesma, dizemos que fez uma chamada recursiva.
Um exemplo simples de função recursiva é o cálculo do fatorial de um número. Para isso temos a seguinte função de recorrência:
0! =1 (Base)
n!= n * (n-1)! para n>0;
Segundo MEDINA e FERTIG (2005), uma função de recorrência é uma função que é expressa em função de si mesma. Assim temos um valor inicial (base) e depois prova-se que se o teorema é válido para qualquer valor de n, será também para o próximo valor(n+1). Este princípio é muito similar a resolução de funções recursivas.
Agora com a utilização da função de recorrência fica mais fácil a criação da função recursiva do fatorial:
#include <stdio.h>
#include <stdlib.h>
int fatorial (int n);
int main(int argc, char *argv[])
{
int n, fat=1;
printf("Digite um numero inteiro:");
scanf("%d", &n);
fat=fatorial(n);
printf("\n\nO fatorial de %d e: %d ", n, fat);
system("Pause");
}
int fatorial (int n)
{
int r;
if (n == 0) //BASE e também a condição de parada
r=1;
else //para n>0
r=n*fatorial(n-1);
return r;
}
Se informarmos que queremos o fatorial de 3 teremos o seguinte:
fatorial(3)