Ed
ano passado
Vamos analisar o código apresentado para entender qual será a saída esperada. A função `potencia(int x, int y)` calcula \( x^y \) (x elevado a y) usando recursão. Vamos ver como ela funciona: 1. Se \( y == 0 \), a função retorna 1, pois qualquer número elevado a 0 é 1. 2. Se \( y \) não é 1, a função multiplica \( x \) pelo resultado da chamada recursiva `potencia(x, y - 1)`. Agora, vamos calcular `potencia(3, 4)` passo a passo: - `potencia(3, 4)` chama `potencia(3, 3)` - `potencia(3, 3)` chama `potencia(3, 2)` - `potencia(3, 2)` chama `potencia(3, 1)` - `potencia(3, 1)` retorna 3 (pois não entra na condição de \( y == 0 \) e \( y != 1 \) não é mais verdadeira) - Agora, voltando: - `potencia(3, 2)` calcula \( 3 \times 3 = 9 \) - `potencia(3, 3)` calcula \( 3 \times 9 = 27 \) - `potencia(3, 4)` calcula \( 3 \times 27 = 81 \) Portanto, a saída esperada para o código é: a. 81 A resposta correta é a) 81.