Recursividade

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar

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

  1. http://pt.wikipedia.org/wiki/Recursividade
  2. 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)