domingo, 29 de setembro de 2013

[Python] - Fibonacci Iterativo

Olá pessoal, nesse post será colocado um código que dado um número digitado pelo usuário, o programa mostrará o número correspondente na sequência de Fibonacci.

O entendimento da sequência é muito simples: os dois primeiros números são iguais a 1 e cada número posterior é a soma dos dois números imediatamente anteriores.

Exemplo de uma entrada com o número 6, a sequência seria: 

1, 1, 2, 3, 5, 8

Ou seja, o número 6 corresponde ao 8 na sequência de Fibonacci.
num = int(input("Digite um número: "))
if num == 1 or num == 2:
   print(1)
else:
   n1 = n2 = 1
   for i in range(2, num, 1):
      aux = n2
      n2 = n1 + aux
      n1 = aux
   print("%d" %n2)

Linha 1: a função input() realiza a entrada de dados, o usuário irá entrar com um número. Utilizo a função int() para converter a entrada do usuário para um número inteiro porque o retorno de input() é uma string.

Linha 2: condição que verifica se o número digitado pelo usuário é 1 ou 2, se for 1 ou 2 então iremos imprimir o número 1 porque os dois primeiros números da sequência são iguais a 1.

Linha 5: n1 e n2  começam com 1.

Linhas 6 à 9: aqui temos um for que vai percorrer de 2 até num com incremento de 1. Temos uma variável auxiliar chamada "aux" que irá pegar o valor de n2. Logo após n2 receberá a soma de n1 com aux. Por último, n1 receberá o valor de aux.

Linha 10:  Imprime o número da sequência de Fibonacci correspondente ao número digitado pelo usuário "num".

Quaisquer dúvidas, deixem nos comentários. Até a próxima!


Nenhum comentário: