


Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Uma função que é dita recursiva é aquela que invoca ela mesma. Já explicamos, e demos exemplos, que é possível, recomendável e normal que uma função invoque outra
Tipologia: Notas de estudo
1 / 4
Esta página não é visível na pré-visualização
Não perca as partes importantes!



Uma função que é dita recursiva é aquela que invoca ela mesma. Já explicamos, e demos exemplos, que é possível, recomendável e normal que uma função invoque outra.
Porém também é possível que uma função chame ela mesma, mas é preciso um cuidado especial para não cairmos em um looping infinito.
A melhor forma de ilustrar isso é calculando o fatorial de um número. O fatorial de um número n é representado por “ n! ”. Exemplo:
5! é igual a 5. 4!. 3!. 2!. 1! que é igual a 120 4! é igual a 4. 3!. 2!. 1! que é igual a 24, 3! é igual a 3. 2!. 1! que é igual a 6 2! é igual a 2. 1! que é igual a 2. Por definição tanto 0!, quanto 1! são iguais a 1. Podemos formular uma fórmula geral: n! = n * (n - 1)! Ampliando ela, devemos parar somente quando o último elemento do produto for 1: n! = n * (n-1)! = n * (n-1)! * (n-2)! = n * (n-1)! * (n-2)! * ... * 1 Para programar isso, criamos uma função fatorial(int n) que retorna 1 se for passado 1 como argumento (pois fatorial(1) = 1) e caso o argumento seja maior que 1:
fatorial(n) = n * fatorial(n-1) Assim como na maioria de nossos problemas, a ideia de recursividade é resolvida com um simples teste condicional IF ELSE. Exemplo:
Teste:
E na linguagem C?
Podemos resolver o problema do fatorial utilizando uma função iterativa. Exemplo:
Exercícios:
Entrada: 5 5+4+3+2+1+ Saida: 15