Recursividade: mudanças entre as edições
De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Linha 2: | Linha 2: | ||
'''Recursividade''' é o ato de uma função chamar a si mesma<ref>http://pt.wikipedia.org/wiki/Recursividade</ref>. | '''Recursividade''' é o ato de uma função chamar a si mesma<ref>http://pt.wikipedia.org/wiki/Recursividade</ref>. | ||
==Função Fatorial== | |||
Uma função que calcule o '''fatorial''' de um número inteiro '''n''' (simbolizado por '''n!''') é um bom exemplo de uma função recursiva. | Uma função que calcule o '''fatorial''' de um número inteiro '''n''' (simbolizado por '''n!''') é um bom exemplo de uma função recursiva. | ||
Linha 42: | Linha 44: | ||
</source> | </source> | ||
==Multiplicação de dois números naturais== | |||
Outro exemplo de recursividade pode ser obtido na multiplicação de dois números naturais. O produto '''a * b''' pode ser obtido como a somado '''a''' si mesmo '''b''' vezes. Esta multiplicação pode ser implementada por um programa interativo. Uma definição recursiva equivalente é<ref name="TENENBAUM">TENENBAUM, A. A.; LANGSAM, Y.; AUGENSTEIN, M.J. Estruturas de dados usando C, capítulo 3: Recursividade, São Paulo: Makron Books, 1995.</ref>.: | |||
a * b = a se b = 1 | |||
a * b = a * (b - 1) + a se b > 1 | |||
;Excercício: Implemente uma função recursiva para multiplicar dois números naturais. | |||
==Referências== | ==Referências== |
Edição das 20h19min de 22 de outubro de 2014
Recursividade
Recursividade é o ato de uma função chamar a si mesma[1].
Função Fatorial
Uma função que calcule o fatorial de um número inteiro n (simbolizado por n!) é um bom exemplo de uma função recursiva.
Por exemplo:
0! = 1 1! = 1 2! = 2 . 1 = 2 3! = 3 . 2 . 1 = 6 4! = 4 . 3 . 2 . 1 = 24 5! = 5 . 4 . 3 . 2 . 1 = 120
Desta forma, posso expressar:
2! = 2 . 1 3! = 3 . 2! 4! = 4 . 3! 5! = 5 . 4!
Note que, nos exemplos acima, que:
n! = n . (n - 1)!
- Função em C para calcular o fatorial de um número inteiro n
#include <stdio.h>
int fatorial(int n)
{
if (n)
return n*fatorial(n-1)
else return 1;
}
int main()
{
int a;
printf("\nEntre com um valor inteiro :");
scanf("%d",&a);
printf("O fatorial de %d é %d\n\n",a,fatorial(a));
return(0);
}
Multiplicação de dois números naturais
Outro exemplo de recursividade pode ser obtido na multiplicação de dois números naturais. O produto a * b pode ser obtido como a somado a si mesmo b vezes. Esta multiplicação pode ser implementada por um programa interativo. Uma definição recursiva equivalente é[2].:
a * b = a se b = 1 a * b = a * (b - 1) + a se b > 1
- Excercício
- Implemente uma função recursiva para multiplicar dois números naturais.
Referências
- ↑ http://pt.wikipedia.org/wiki/Recursividade
- ↑ TENENBAUM, A. A.; LANGSAM, Y.; AUGENSTEIN, M.J. Estruturas de dados usando C, capítulo 3: Recursividade, São Paulo: Makron Books, 1995.
--Evandro.cantu (discussão) 17h44min de 22 de outubro de 2014 (BRST)