FC ConcursosFC Concursos

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

  1. define uma chamada de função que utiliza a estrutura de dicionários.
  2. imprime como resultado a saída 4 3 2 1 1 2 3 4, se digitado o valor 4 na console de entrada.
  3. retorna o resultado [3, 2, 1, 1, 2, 3] se digitado o valor 3 na console de entrada.
  4. sincroniza a execução de threads na chamada do método print(' '.join(map(str,seq))).
  5. 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

Continue aprendendo