Как правильно выполнить код?

Привет
Почему в принте выводятся числа более 4 000 000, если я написал что цикл должен завершиться, если число более 4 млн?

a = [1, 2] # задаем первые 2 числа фибоначчи в список

for number in a:
    b = a[-2] + a[-1] # складываем последнее число с предпоследнем из списка
    a.append(b) # добавляем в конце списка результат переменной b
    if number > 4000000: # если число превышает 4 млн - завершаем цикл
        break
print(a)


Вывод:

[1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, <b>5702887, 9227465, 14930352</b>]
  • Вопрос задан
  • 117 просмотров
Пригласить эксперта
Ответы на вопрос 1
@pcdesign
Почему в принте выводятся числа более 4 000 000


Потому что сначала программа складывает, а потом проверять больше или нет.
a = [1, 2] 

for number in a:
   b = a[-2] + a[-1]
   if b > 4000000:
        break
   a.append(b)  

print(a)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы