Para a = 1 e b = 2 a func(1, 2) ir� retornar 2!

A primeira vez em que a fun��o � chamada, ela passa pelo if, b � diferente 
de um ent�o ela
deve retornar o valor de a + func(1, 1).

O valor de a � empilhado e � chamada a fun��o novamente, com os valores a = 
1 e b = 1.
Como b desta vez � igual a um, ela retorna o valor de a = 1, que � 
finalmente somado com
o a = 1 que tinha ficado esperando...

N�o � dif�cil de entender, pense que a fun��o que voc� est� chamando � 
outra fun��o
qualquer, pois numa chamada recursiva, � o que acontece: � alocado toda uma 
nova
mem�ria para cada chamada.

S� tenha cuidado, pois se o valor que voc� estiver passando como b nunca 
chegar a
1, o programa trava, pois � infinito.

Falou.

/***************************************************************
Emilio Eiji Yamane
3� ano Ci�ncia da Computa��o - Din - UEM
icq 150217443
                        ^_^   Liberte-se!!!   ^_^
***************************************************************/


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


_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------

Responder a