func(5, 5) // chamada a funcao
5 + func( 5, 4 ) // * Veja a linha de raciocinio abaixo...
+ 5 + func( 5, 3 )
+ 5 + func( 5, 2 )
+ 5 + func( 5, 1 ) +
5 // aqui é o resultado e final da recursao, b = 1 e return a ( 5 )
= 25 // some todos o valores de a... e pronto 25
Linha de raciocinio: onde 5 é o valor de a, b foi decrementado ( antes era 5 e agora eh 4 ) e eh chamado a mesma funcao... lembrando q o valor de a retido para soma ...
Outra de recursividade:
// é uma repetição parecida com o for... onde a condicao de valor inicial eh o valor passado a funcao e para quando a menor ou igual a 1...
public int recursiva( int a ) {
System.out.println( " - " + a + " - " );
if ( a > 1 ) // condição de continuacao
return recursiva(a - 1);
else // condicao de parada
return 1;
}
Qualquer duvida... pergunte....
Luis Gustavo Giordano wrote:
003601c1c4ad$f3f090a0$[EMAIL PROTECTED]"> href="file://C:\WINDOWS\>Alguém sabe qual o valor retornado da seguinte função:public int func (int a, int b){if (b == 1)return a;elsereturn a + func (a, b - 1)}Assumam valores de a = 1 e b = 2. Se possível, expliquem como vcs conseguiram chegar a alguma solução.