• Предмет: Информатика
  • Автор: gavrishjulia
  • Вопрос задан 2 года назад

Последовательность Фибоначчи определяется так:
ϕ0=0,ϕ1=1,ϕn=ϕn−1+ϕn−2

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

На python, пожалуйста :)

Ответы

Ответ дал: Аноним
1

phi_list = [0, 1]

bruteforce_limit = 0

A = int(input())

if A < 0: print(-1)

if A == 1: print(1, 2)

if A == 0: print(0)

list_pass = 0

i = 0

while A not in phi_list and A > 0:

   bruteforce_limit += 100

   while i <= bruteforce_limit:

       phi_list.append((phi_list[i] + phi_list[i+1]))

       if A > phi_list[i] and A < phi_list[i + 1]:

           print(-1)

           exit()

       i += 1

   if A in phi_list:

       print(phi_list.index(A))

       list_pass = 1

       break


Аноним: list_pass можно убрать, как и проверку того, что A > 0 в цикле while
Вас заинтересует