Este algoritmo é procurado todos os dias por diversos iniciantes em linguagem C. Por isso resolvi lançar essa dica, mostrar o código e um texto explicativo que possivelmente possa tirar alguma dúvida.
Funções recursivas são funções que chamam elas mesmas, formando um laço que é interrompido assim que uma determinada condição é satisfeita, no caso desse código, "if(numero==0)".
Por exemplo, se pedirmos o fatorial de 4, o programa fará:
4*fatorial de 3.
4*3*fatorial de 2.
4*3*2*fatorial de 1.
4*3*2*1*fatorial de 0.
Ao chegar no fatorial de 0, o resultado conhecido pelo programa é 1, como especificado na condição, então, todos os outros fatoriais serão calculados até chegar ao resultado desejado.
Obrigado.
Espero ter ajudado.
Segue o código abaixo como exemplo.
#include <stdio.h>
#include <conio.h>
long int fatorial(long int numero);
main(){
long int num;
printf("Entre com o numero de elementos da sequência: ");
scanf("%ld", &num);
printf("O fatorial de %ld e %ld", num, fatorial(num));
getch();
}
long int fatorial(long int numero){
if(numero==0)
return 1;
else
return numero*fatorial(numero-1);
}