Посчитать кол-во четных чисел в ряду чисел Фибоначчи до 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 шт):
Сделай переменную и увеличивай её когда число четное, потом выведи.
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)
Если уж надо подсчитать кол-во четных чисел, то уберите все
printСоздайте переменную например
countи изначально она должна равняться1, т.к. последовательность начинается с 0, и когдаf3четное, то увеличивайте эту переменную на единицуТак же нужно, чтобы цикл шел не до
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.
А зачем вы высчитываете ряд, у нас же есть закономерность по четным числам и этого вполне достаточно для получения общего количества:
n = int(input("Введите n: "))
print((n + 2) // 3)