C++
Home

Recursão

Quando usamos uma mesma função dentro de outra para gerar um resultado estamos usando a técnica de recursão.

A recursão utiliza em particular um loop de função.. ou seja, ela usa ela mesma até que algo se torne false para que a função termine. Isto é chamado de caso básico.

Omitir o caso básico, ou escrever incorretamente a etapa de recursão, de forma que ela não chege ao caso básico ocasionará em uma recursão infinita. Por isso tome cuidado


// RECURSÂO para teste de fatoriais
#include <iostream>

using std::cout;
using std::endl;

unsigned long factorial ( unsigned long ); // unsigned para numeros fatoriais longos

int main()
{
   int i;

   for (i=0; i<=10; i++)
      cout << i <<"! = "<< factorial( i ) << endl;

   return 0;
}

unsigned long factorial ( unsigned long number )
{
   if (number <= 1) // caso base ou caso básico ( base )
      return 1;

   else
      return number * factorial( number - 1);
}

Observe que no retorno de factiorial retornamos a funcao novamente
Usingned é usado para numeros grande acima de int.

Evite usar recursão em situações que exigem auto desempenho.

Perguntas??? Email