46 - Indica o que é impresso no ecrã pelo seguinte código. Justifica a tua resposta.
static void Main(string[] args)
{
Console.WriteLine(MetodoRecursivo(5));
}
static int MetodoRecursivo(int n)
{
if (n == 0)
return 0;
else if (n % 2 == 0)
return 3 + MetodoRecursivo(n - 1);
else
return 2 + MetodoRecursivo(n - 1);
}
- O que é impresso no ecrã é o seguinte: "12".
- O método recursivo recebe um
int n = 5
, e procede com o código onde:- Neste caso corresponde à ultima condição (
else
) que devolve2 + MetodoRecursivo(4)
MetodoRecursivo(4)
satisfaz a 2ª condição (else if
) que retorna3 + MetodoRecursivo(3)
MetodoRecursivo(3)
satisfaz a 3ª condição (else
) que retorna2 + MetodoRecursivo(2)
MetodoRecursivo(2)
satisfaz a 2ª condição e retorna2 + MetodoRecursivo(1)
MetodoRecursivo(1)
satisfaz a 3ª condição e retorna3 + MetodoRecursivo(0)
- Esta última retorna 0.
- Neste caso corresponde à ultima condição (
- Assim sendo é só fazer os cálculos: 2+3+2+2+3+0 = 12.
Referências: Rafael Silva
Por Rodrigo Marques