Посчитать кол-во четных чисел в ряду чисел Фибоначчи до 10000 (длина ряда Фибоначчи)

Что мне известно:

Вывод чисел ряда фибоначчи:

n = int(input("Введите n: "))
f1 = 0
f2 = 1
print(f1)
print(f2)
for i in range(n):
    f3 = f1 + f2
    print(f3)
    f1 = f2
    f2 = f3

Также то , что каждое третье число ряда является четным , пример: 0, 1, 1, 2, 3, 5, 8

и то что четное число можно найти по формуле f3 = 4 * f2 + f1; Пример: 8 = 4*2 + 0 и 34 = 4 * 8 + 2 ;

Я не могу понять как вывести количество четных чисел из ряда.


Ответы (3 шт):

Автор решения: Krizend

Сделай переменную и увеличивай её когда число четное, потом выведи.

n = int(input("Введите n: "))
f1 = 0
f2 = 1
i = 0
print(f1)
print(f2)
for i in range(n):
    f3 = f1 + f2
    if f3 % 2 == 0:
        i += 1
    print(f3)
    f1 = f2
    f2 = f3
print(i)
→ Ссылка
Автор решения: Павел Ериков
  1. Если уж надо подсчитать кол-во четных чисел, то уберите все print

  2. Создайте переменную например count и изначально она должна равняться 1, т.к. последовательность начинается с 0, и когда f3 четное, то увеличивайте эту переменную на единицу

  3. Так же нужно, чтобы цикл шел не до n, а до n - 2, т.к. 2 числа (0 и 1) уже подсчитаны.

    Пример кода:

    n = int(input("Введите n: "))
    f1 = 0
    f2 = 1
    count = 1
    for i in range(n - 2):
        f3 = f1 + f2
        if(f3 % 2 == 0):
            count += 1
        f1 = f2
        f2 = f3
    
    print(count)
    

Или второй более простой способ найти кол-во четных чисел в последовательности, используя одну формулу.

Как писал @Mike "Если числа нумеруются с 1, то ..." и привел формулу (n - 1) // 3, но т.к. последовательность начинается с 0, то вам нужно прибавить еще 1, то есть (n - 1) // 3 + 1.

→ Ссылка
Автор решения: TigerTV.ru

А зачем вы высчитываете ряд, у нас же есть закономерность по четным числам и этого вполне достаточно для получения общего количества:

n = int(input("Введите n: "))
print((n + 2) // 3)
→ Ссылка