Unidade D - Funções

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)