Fatorial usando recursividade

Publicado por Perfil removido em 28/06/2007

[ Hits: 18.529 ]

 


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

Ignorar determinado pacote na listagem de pacotes órfãos do deborphan

Redimensionando imagens para PDF com convert

Base de dados mais organizada em shell script

Sem permissões suficientes para executar /usr/sbin/pppd?

Compartilhamento básico de Internet com Linux

Leitura recomendada

Fazendo comparações sem o uso de IF, ELSE em C

Limpando o buffer do teclado em C

Limpando a "sujeirinha" no buffer do teclado

Pequeno programinha em C para ver o ASCII de uma tecla

Encontrando erros em seus programas

  

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