Top.Mail.Ru
Ответы

Решите задачу python

Последовательность Фибоначчи определяется так:

φ0=0,φ1=1,φn=φn−1+φn−2
Дано натуральное число A
. Определите, каким по счету числом Фибоначчи оно является, то есть выведите такое число n
, что φn=A
. Если A
не является числом Фибоначчи, выведите число −1
.

Входные данные

Вводится натуральное число A
(2⩽A⩽2⋅109
).

Выходные данные

Выведите ответ на задачу.

По дате
По рейтингу
Аватар пользователя
Мудрец
7мес

Код:

12345678910111213141516171819202122232425
 def find_fibonacci_index(A): 
    if A == 0: 
        return 0 
    elif A == 1: 
        return 1 
     
    a, b = 0, 1 
    index = 1 
     
    while b < A: 
        a, b = b, a + b 
        index += 1 
     
    if b == A: 
        return index 
    else: 
        return -1 
 
# Ввод данных 
A = int(input()) 
 
# Вычисление и вывод результата 
result = find_fibonacci_index(A) 
print(result) 
 
Аватар пользователя
Ученик
7мес

def fibonacci_index(A):
φ0, φ1 = 0, 1
n = 1

while φ1 <= A:
if φ1 == A:
return n
φ0, φ1 = φ1, φ0 + φ1
n += 1

return -1

# Пример ввода:
A = int(input())
print(fibonacci_index(A))

Аватар пользователя
Ученик
7мес

2