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:
- resultado.insert(a) a, b = b, a+b
- resultado.append(a) a, b = b, a+b
- resultado.add(a) a, b = a, a+b
- resultado.append(a) a, b = a+b, b
- 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