Tem interesse em fazer o curso do pré-básico ao pós-avançado? Lançamos o curso definitivo de Linguagem C, que abrange toda a linguagem e muito mais, com acesso vitalício, mais de 46 horas de conteúdo e certificado de conclusão! Confira: go.hotmart.com/N48026554Y Venha se tornar um programar profissional!
Márcio tostes Como quase td na vida, tem vantagens e desvantagens, normalmente troca-se tempo (perde) por espaço (ganha), talvez te refiras a complexidade, é ainda mais relativo.
Eu utilizo o CODE BLOCK, não rodou o programa para mim. #include #include unsigned long fatorial(int num); int main() { unsigned long fat; int num; printf("Digite um numero: "); scanf("%d", &num); getchar(); fat = fatorial(num); printf("O Fatorial de %d eh de %ld ", num, fat); return 0; } unsigned long fatorial(int num) { unsigned long result; if((num == 1) || (num = 0)) return (1); result = num * fatorial(num - 1); return (result); }
observe atentamente o trecho -> if((num == 1) || (num = 0)) return (1); percebi que tem o operador de atribuição (=), ao invés de comparação(==), se corrigir isto e adicionar system("PAUSE"); acima de return 0; pode usar o CODE BLOCK de boas parceiro!
Tem interesse em fazer o curso do pré-básico ao pós-avançado? Lançamos o curso definitivo de Linguagem C, que abrange toda a linguagem e muito mais, com acesso vitalício, mais de 46 horas de conteúdo e certificado de conclusão! Confira: go.hotmart.com/N48026554Y
Venha se tornar um programar profissional!
Foi uma excelente explicação! Consegui entender a recursividade. Obrigado
obrigado por mais uma aula! Continue sempre assim! Deus te abençoe
Muito boa a sua aula.
Excelente
Pq todo vídeo explicando recursividade só usa Fatorial como exemplo?
double fatorial(int num); em vez de unsigned long fatorial(int num); para valores maiores?
Double é para flutuante. Fatorial se calcula somente com inteiros creio...
todos os videos na net só ensinam calcular recursividade em c usando fatorial !!!! ai fica difícil de aprender!
rapaz, didática muito boa...só que essa tal de recursão é um veneno rsrs...
Márcio tostes Como quase td na vida, tem vantagens e desvantagens, normalmente troca-se tempo (perde) por espaço (ganha), talvez te refiras a complexidade, é ainda mais relativo.
Eu utilizo o CODE BLOCK, não rodou o programa para mim.
#include
#include
unsigned long fatorial(int num);
int main()
{
unsigned long fat;
int num;
printf("Digite um numero: ");
scanf("%d", &num);
getchar();
fat = fatorial(num);
printf("O Fatorial de %d eh de %ld
", num, fat);
return 0;
}
unsigned long fatorial(int num)
{
unsigned long result;
if((num == 1) || (num = 0)) return (1);
result = num * fatorial(num - 1);
return (result);
}
// Funções Recursivas
// -- Bibliotecas Auxiliares --
#include
#include
// -- Protótipos Das Funções Auxiliares --
unsigned long fatorial(int numero);
// -- Função Principal --
int main()
{
unsigned long fat;
int num;
printf("Informe um numero: ");
scanf("%d", &num);
getchar();
fat = fatorial(num);
printf("
O fatorial de %d: %ld
", num, fat);
return 0;
} // End Main
// -- Desenvolvimento Das Funções Auxiliares --
unsigned long fatorial(int numero)
{
unsigned long resultado;
if((numero == 1) || (numero == 0))
{
return 1;
}
resultado = numero*fatorial(numero-1);
return resultado;
} // End fatorial
Pode usar o meu código!! :D
observe atentamente o trecho -> if((num == 1) || (num = 0)) return (1); percebi que tem o operador de atribuição (=), ao invés de comparação(==), se corrigir isto e adicionar system("PAUSE"); acima de return 0; pode usar o CODE BLOCK de boas parceiro!