FC ConcursosFC Concursos

Questão FC441299

Considere o código fonte Python abaixo. def calcular(n): resultado = [] a, b = 0, 1 while a < n: ..I.. return resultado res = calcular(100) print res Para que seja exibido [0, 1, 1

Linguagens de Programação para Ciência de Dados

FCC · 2015

Considere o código fonte Python abaixo.


def calcular(n):
    resultado = []
    a, b = 0, 1
    while a < n:
            ..I..
    return resultado
res = calcular(100)
print res


Para que seja exibido [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] a lacuna I precisa ser preenchida corretamente com:

  1. resultado.insert(a)   a, b = b, a+b
  2. resultado.append(a)   a, b = b, a+b
  3. resultado.add(a)   a, b = a, a+b
  4. resultado.append(a)   a, b = a+b, b
  5. resultado.add(a)   a, b = b, a+b
Mostrar resposta e comentário

Gabarito

B

Comentário do professor

A lacuna deve conter resultado.append(a) e a, b = b, a+b. A primeira instrução insere o valor atual de a no final da lista resultado, construindo a sequência elemento a elemento.

A segunda linha realiza a atualização dos termos da sequência de Fibonacci. Na sequência cada novo termo é a soma dos dois anteriores, isto é \(F_{n+1}=F_n+F_{n-1}\). A atribuição em tupla faz a troca simultânea: a recebe o valor antigo de b e b recebe a soma dos valores antigos de a e b.

Essa simultaneidade evita perda de dados que ocorreria com atribuições sequenciais sem variável temporária. Com o laço while a < n, chamar calcular(100) produz a lista até 89, como exibido.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo