Последовательность Фибоначчи определяется так:
ϕ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
Вас заинтересует
1 год назад
1 год назад
6 лет назад
6 лет назад
8 лет назад
8 лет назад