Fatorial usando recursividade

Publicado por Perfil removido em 28/06/2007

[ Hits: 19.001 ]

 


Fatorial usando recursividade



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);
}
Outras dicas deste autor

Instalando Zoom Client no Ubuntu 24.04 LTS

Debian GNU/Linux-Libre - Sem softwares proprietários

CentOS 5 - Desabilitando serviços desnecessários

Removendo Firefox Snap do Ubuntu 21.10

Jogos em SWF (Flash Player)? Veja como reproduzir offline

Leitura recomendada

Encontrando erros em seus programas

Checagem de erro do scanf

Switch em C, e se a opção for inválida?

Como limpar a tela em C

Conversão vetor de caracteres para double

  

Comentários
[1] Comentário enviado por lazaro91 em 18/11/2007 - 13:45h

eu acho que vi esse exemplo numa video aula heim!
hehe, mas é isso mesmo valeu a dica

[2] Comentário enviado por removido em 19/01/2010 - 05:21h

conio.h ?
Até onde sei, esta biblioteca é apenas para sistemas DOS. :T



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts