2013-03-25 3 views
0

обучающая я прохожу имел следующую программуПоследовательность Фибоначчи логика в Python

# This program calculates the Fibonacci sequence 
a = 0 
b = 1 
count = 0 
max_count = 20 
while count < max_count: 
    count = count + 1 
    old_a = a # we need to keep track of a since we change it 
    print(old_a,end=" ") # Notice the magic end=" " in the print function arguments that 
          # keeps it from creating a new line 
    a = b 
    b = old_a + b 
print() # gets a new (empty) line 

Код совершенен. Однако я не могу понять, как рассчитывается последовательность. Как изменить значения для создания последовательности?

+0

Ваш код форматирования сломана. Хорошие [вопросы, связанные с Фибоначчи] (http://stackoverflow.com/a/499245/923794) уже на этом сайте уже много. Получение кода объясняется или обсуждается не является хорошим форматом вопроса для этого сайта. Пожалуйста, прочитайте хотя бы первые два абзаца [FAQ] (http://stackoverflow.com/faq). – cfi

ответ

0

Это будет иметь больше смысла, если вы удалите все, что посторонний код:

while count < max_count: 
    old_a = a 
    a = b 
    b = old_a + b 

old_a, вероятно, путая вас. Это долгий путь написания этого:

a, b = b, a + b 

меняющего a с b и (в то же время), b с a + b. Обратите внимание, что не такой же, как написание:

a = b 
b = a + b 

Потому что к тому времени вы повторно определить b, a уже имеет новое значение, которое равно b.

Я также пропустил код вручную, написав его на бумаге.

+0

Привет, Блендер, Можете ли вы дать мне полный код для последовательности. потому что я попытался с кодом, который вы дали, но получил ошибку. – thoufiq

+0

@thoufiq: Я уверен, что вы можете понять это сами. – Blender

0

Этот код работает отлично:

a, b = 0, 1 
for _ in range(20): 
     print a 
     a, b = b, a+b 
Смежные вопросы