• Matéria: Informática
  • Autor: michellyovieiroswf5q
  • Perguntado 3 anos atrás

alguém bom em python por favor, me ajuda??

Anexos:

Respostas

respondido por: lemoseric
1

Resposta:

def fibonacci(posicao):

   penultimo_numero = 1

   ultimo_numero = 1

   contador = 2

   if (posicao == 1) or (posicao == 2):

       resposta = 1

   else:

       while(posicao > contador):

           resposta = ultimo_numero + penultimo_numero

           penultimo_numero = ultimo_numero

           ultimo_numero = resposta

           contador += 1

   return posicao, resposta

if(__name__ == '__main__'):

   num, resultado = fibonacci(6)

   print(f'A posição {num} de fibonacci é igual a {resultado}.')

Explicação:

1) Começamos criando a função com um parâmetro que é a posição:

   def fibonacci(posicao):

2) Sabemos que temos que somar o último número com o penúltimo para obter o resultado do termo até chegar na posição desejada. Aqui definimos os valores iniciais para eles:  

   penultimo_numero = 1

   ultimo_numero = 1

   contador = 2

3) A primeira verificação que fazemos é checar se a posição escolhida é a 1 ou a 2, se for uma dessas posições, o resultado é 1:

   if (posicao == 1) or (posicao == 2):

       resposta = 1

4) Agora verificamos os casos diferentes da posição 1 e da posição e, neste caso, precisamos calcular o resultado até o valor definido no contador ser maior que a posição desejada. A nossa resposta passa a ser a soma do útimo número com o penúltimo, nosso penúltimo número passa a ser o último e o nosso último número passa a ser nossa resposta, o valor do contador é incrementado e novamente ocorre o loop para verificar se a posição é maior que o nosso contador, caso contrário, todo processo ocorre até que a condição seja atendida e o loop desfeito retornando o resultado.

   else:

       while(posicao > contador):

           resposta = ultimo_numero + penultimo_numero

           penultimo_numero = ultimo_numero

           ultimo_numero = resposta

           contador += 1

   return posicao, resposta

5) Essa condição IF apresentada neste trecho, somente é útil para verificar se o arquivo que está sendo executado possuí a palavra reservada __main__, isso quer dizer que somente irá executar essa função se eu executar esse arquivo diretamente.

   if(__name__ == '__main__'):

   

6) Pra finalizar criamos duas variáveis para receber o retorno da função separadamente para ficar mais simples de imprimir na tela posteriormente:

   num, resultado = fibonacci(6)

   print(f'A posição {num} de fibonacci é igual a {resultado}.')


michellyovieiroswf5q: muito obrigada, me salvou demais!!!!!!!
lemoseric: de nada heheh
Perguntas similares