Pular para o conteúdo

Fatorial usando recursividade

Dica publicada em C/C++ / Introdução
Perfil removido removido
Hits: 19.401 Categoria: C/C++ Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
#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);
}
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Flathub na sua distribuição Linux e comandos básicos de gerenciamento

Comunidade de relacionamentos para usuários Debian

Habilitanto o repositório EPEL no CentOS

WinFF não funciona no Ubuntu 12.04 - Veja como solucionar

Linux - seu programa não funciona? Use o terminal!

Conversão vetor de caracteres para double

Qt - Adicionando uma foto em Label (QLabel)

Limpando a "sujeirinha" no buffer do teclado

Acessando um valor dada sua posição numa matriz bidimensional

Incluindo paths para os seu próprios headers

#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

Entre na sua conta para comentar.