Questão FC331127
Seja o seguinte código, escrito em linguagem Python: def func(n): if n == 0: return [] return [n] + func(n-1) + [n] n = int(input("Valor de n positivo: ")) seq = func(n) print(' '.
Linguagens de Programação
FGV · 2024
Seja o seguinte código, escrito em linguagem Python:
def func(n):
if n == 0:
return []
return [n] + func(n-1) + [n]
n = int(input("Valor de n positivo: "))
seq = func(n)
print(' '.join(map(str,seq)))
Sobre esse código, é correto afirmar que
- define uma chamada de função que utiliza a estrutura de dicionários.
- imprime como resultado a saída 4 3 2 1 1 2 3 4, se digitado o valor 4 na console de entrada.
- retorna o resultado [3, 2, 1, 1, 2, 3] se digitado o valor 3 na console de entrada.
- sincroniza a execução de threads na chamada do método print(' '.join(map(str,seq))).
- utiliza uma estrutura de chamada concorrente da função func() como um fork.
Mostrar resposta e comentário
Gabarito
B
Comentário do professor
O código define uma função recursiva cuja regra é \( \text{seq}(n) = [n] + \text{seq}(n-1) + [n]\) com a base \( \text{seq}(0)=[]\). Essa definição concatena o número atual, a sequência de nível inferior e novamente o número atual, formando uma sequência simétrica.
Expandindo passo a passo:
func(1) = [1] + func(0) + [1] = [1,1]
func(2) = [2] + [1,1] + [2] = [2,1,1,2]
func(3) = [3,2,1,1,2,3]
func(4) = [4,3,2,1,1,2,3,4]
Por fim, print usa ' '.join para transformar os inteiros em string separados por espaço, então, ao digitar 4, a saída impressa é 4 3 2 1 1 2 3 4.
Conteúdo do catálogo FC Concursos · Atualizado em