Ed
há 5 meses
Vamos analisar o código da função `recursividade` passo a passo para entender o que acontece quando chamamos `recursividade(4)`. A função é definida da seguinte forma: ```c int recursividade(int n) { if (n > 0) { n = 2 * recursividade(n - 1); return n; } else { return 1; } } ``` 1. Quando chamamos `recursividade(4)`, `n` é 4, que é maior que 0. Então, a função chama `recursividade(3)`. 2. Em `recursividade(3)`, `n` é 3, que é maior que 0. Então, a função chama `recursividade(2)`. 3. Em `recursividade(2)`, `n` é 2, que é maior que 0. Então, a função chama `recursividade(1)`. 4. Em `recursividade(1)`, `n` é 1, que é maior que 0. Então, a função chama `recursividade(0)`. 5. Em `recursividade(0)`, `n` é 0, então a função retorna 1. Agora, vamos voltar pelas chamadas recursivas: - `recursividade(1)` retorna `2 * 1 = 2`. - `recursividade(2)` retorna `2 * 2 = 4`. - `recursividade(3)` retorna `2 * 4 = 8`. - `recursividade(4)` retorna `2 * 8 = 16`. Portanto, o valor retornado pela função `recursividade(4)` é 16. A alternativa correta é: C 16.
Já tem uma conta?
Ao continuar, você aceita os Termos de Uso e Política de Privacidade
Mais perguntas desse material