5
I’m developing a program that’s one of those classic programming exercises that involves the Fibonacci sequence. The program is simple, it asks the user to enter a term of the sequence and the program tells which number of the sequence occupies that term. Example: The 5th term of the sequence is 5, the 10th term is 55 and so on.
I have developed the following code for this:
n = int(input("Digite o termo da sequência Fibonacci: "))
a = 1
b = 1
k = 1
while k <= n - 2:
a = b
b = a + b
k = k + 1
print("O {}º da Sequência de Fibonacci é ocupado pelo número {}.".format(n,b))
However, when I run the program, it does not work as expected. See:
Digite o termo da sequência Fibonacci: 5 O 5º da Sequência de Fibonacci é ocupado pelo número 8.
Again:
Digite o termo da sequência Fibonacci: 10 O 10º da Sequência de Fibonacci é ocupado pelo número 256.
I looked for solutions on the internet to see where I was going wrong and found in the Python course for Zombies a solution that solves the problem correctly:
n = int(input("Digite o termo da sequência Fibonacci: "))
a, b = 1, 1
k = 1
while k <= n - 2:
a, b = b, a + b
k = k + 1
print("O {}º da Sequência de Fibonacci é ocupado pelo número {}.".format(n,b))
Watch the exits:
Digite o termo da sequência Fibonacci: 5 O 5º da Sequência de Fibonacci é ocupado pelo número 5.
Again:
Digite o termo da sequência Fibonacci: 10 O 10º da Sequência de Fibonacci é ocupado pelo número 55.
As you can see, the last two exits are correct.
The big problem is that, at least in my view, the codes are exactly the same, the difference is that one occupies fewer lines than the other, or am I wrong? Why the exits are different?
The order in which things happen...;
a, b = b, a + b
is equivalent tob = a+b
and thena = b
– le314u