d) Mostre o passo-a-passo da execução da função recursiva abaixo até chegar ao
resultado final, considerando que a função seja chamada para o valor de n = 5.
int f(int n){
if (n == 0)
return 0;
if (n == 1)
return 1;
else
return(f(n-1)+ 3 * f(n-2));
Respostas
Resposta:
Obs: não está muito claro a linguagem que está usando e se o código está com a sintaxe correta, vou tentar responder pela lógica de programação.
int f (int n){ -> f e n deverão ser um número inteiro
if (n == 0) -> "Se o valor de n for igual a zero" - 5 não é igual a 0 - falso, não irá retornar 0.
return 0;
if (n == 1) -> "Se o valor de n for igual a 1" - 5 não é igual a 1 - falso, não irá retornar 1.
return 1;
else -> "Se Não, irá retornar abaixo(f( n-1 ) + 3 * f( n-2 )): " - verdadeiro
return( f( n-1 ) + 3 * f( n-2 ) );
-> f( n-1 ) + 3 * f( n-2 )
-> trazendo valores para forma decimal:
-> (5-1) + 3 x (5-2)
-> 4 + 3 x 3
-> 4 + 9
O output da função será 13