Title: Help
Luis
   
        O resultado vai ser 2...
 
 
        Nesse caso o metodo tem 2 fases "Fase ativa" e "Fase ociosa".  A primeira fase vai terminar quando a condicao "b==1" for verdadeira. Quando isso ocorrer comecara o procesamento (fase ociosa) que seria o retorno dos valores de trais para frente.
 
Ex:
 
Assumindo valores a =1 e b =2  o resultado é 2  - colocarei os valores entr "()" para tentar facilitar...
 
func ( a (1), b (2) )
    b (2) é diferente de 1 entao vou retornar  a(1) + o retorno de func(a (1), b(2) -1)
 
                func (a (1), b(1))
                        b(1) é igual a 1 entao vou retornar o valor de a (1)
 
 
Assumindo valores a =1 e b =3  o resultado é 3
 
func ( a (1), b (3) )
    b (3) é diferente de 1 entao vou retornar  a(1) + o retorno de func(a (1), b(3) -1)
 
                func (a (1), b(2))
                        b(2) é diferente de 1 entao vou retornar  a(1) + o retorno de func(a (1), b(2) -1)
 
                            func (a (1), b(1))
                                b(1) é igual a 1 entao vou retornar o valor de a (1)
 
Espero ter ajudado (ou pelo menos nao ter te confundido mais)
----- Original Message -----
Sent: Tuesday, March 05, 2002 10:26 PM
Subject: [java-list] Recursividade

Alguém sabe qual o valor retornado da seguinte função:
 
public int func (int a, int b)
{
    if (b == 1)
        return a;
    else
        return 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.

Responder a