Carregando...
Carregando...
Carregando...
Considere o seguinte programa em Python: def f(v, i): if i == 0: return v[i] else: return max(v[i], f(v, i - 1)) l = [5,4,6,8,1,2] print(f(l, len(l) - 1))
Explique melhor esta questão
Abre o Tutor com o enunciado e as alternativas já no campo — você revisa e envia.
Esta questão foi verificada por um de nossos administradores.
A resposta correta é: "O programa irá imprimir 8. " JUSTIFICATIVA O programa encontra e retorna o maior elemento do vetor. São feitas chamadas recursivas à função f, com diferentes valores de i, o qual aponta inicialmente para o último elemento do vetor. Em cada chamada, o valor de i é diminuído em 1 unidade. Assim, a função max sempre irá comparar o i-ésimo elemento com o i-1-ésimo elemento (após logicamente resolver a chamada recursiva). Portanto, temos o seguinte: f(v, 5): calcula max(2, f(v, 4)) f(v, 4): calcula max(1, f(v, 3)) f(v, 3): calcula max(8, f(v, 2)) f(v, 2): calcula max(6, f(v, 1)) f(v, 1): calcula max(4, f(v, 0)) f(v, 0): retorna 5 volta para f(v, 1): retorna max(4, 5) = 5 volta para f(v, 2): retorna max(6, 5) = 6 volta para f(v, 3): retorna max(8, 6) = 8 volta para f(v, 4): retorna max(1, 8) = 8 volta para f(v, 5): retorna max(2, 8) = 8