•
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
|