Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Fatorial usando recursividade
Linux user
Publicado por Perfil removido em 28/06/2007

Login: removido, 1653913 pontos
[ Hits: 9666 ]

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

Leitura recomendada
   Dica Linux recomendada Classes para vários tipos (templates)
   Dica Linux recomendada Gerando números aleatórios em C
   Dica Linux recomendada Obtendo a data e a hora de compilação em C
   Dica Linux recomendada Compilando e executando programas em C no Linux
   Dica Linux recomendada Corrigindo o erro: C compiler cannot create executables

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 orlandoxavier em 19/01/2010 - 05:21h:

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


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.