, поэтому я новичок в программировании (как вы увидите из моего глупого вопроса). Я действительно застрял с этим битом:Fibonacci - я застрял
def Fibonnaci():
num = int(raw_input("How many numbers? "))
i = 1
if num ==0:
fib = []
elif num ==1:
fib = [1]
elif num ==2:
fib = [1,1]
elif num >2:
fib = [1,1]
while i < (num - 1):
fib.append(fib[i] + fib[i -1])
i += 1
return fib
print Fibonnaci()
То, что я не получаю это fib.append(fib[i] + fib[i-1])
Так позволяет сказать, номер я выбрал на входе является 5
. Таким образом, список fib
будет содержать [1,1]
. Тогда i
будет 1
. Теперь я запутался. Если i
в fib[i]
равен 1
, то i-1
является 0
. 1+0
- 1
, а распечатка должна быть [1,1,1,3,5]
. Это произошло, когда я удалил fib
. и оставил его только как fib.append(i+(i-1))
.
Так что я полагаю, что fib
делает что-то важное, но я не могу понять, что. Потому что на данный момент i = 1
. Итак, как же выглядит список 2
? Выходной сигнал 1,1,2,3,5
. Даже если fib[i]
будет означать, что i
теперь 2
как есть [1,1]
в списке, то она будет идти 2+1 = 3
отсюда fib
теперь будет [1,1,3]
.
Надеюсь, я полностью не смутил вас (потому что я сбиваю с толку).
Вы пытаетесь написать программу, которая печатает числа Фибоначчи? – Douglas
Если 'i == 1', то' fib [i] == fib [1] == 1' и 'fib [i-1] == fib [0] == 1'. Поэтому 'fib [i] + fib [i-1] == 1 + 1 == 2', и список изменяется как' fib.append (2) '. –
Последовательность Фибоначчи начинается с 1, 1, 2, 3, 5; начиная с 1, 1, вы добавляете эти два числа и результат в 2 и добавляете их в список. Я не совсем точно тестирую ваш код, но вы говорите, что массив содержит 1, 1, 2, 3, 5, и вы ожидаете, что он будет содержать 1, 1, 3, 5 вместо этого? – Makoto