Предмет: Информатика, автор: lds70083Lomov

Даю 30 баллов.

Задача Python

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

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

Входные данные:
Вводится натуральное число A (2≤A≤2∗109).

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

Ответы

Автор ответа: bezrukoff888
2

Примечание:

Использовался ЯП Python3. Версия: 3.7.3

Функция fib(n) выдает число Фибоначчи меньшее или равное n и его порядковый номер.

Остальная часть программы вызывает функцию fib(A), находя тем самым число Фибоначчи меньшее или равное A. В случае если оно меньшее A, выводим -1, так как значит, что A - не принадлежит последовательности. Если же это число равно A, выводим номер.

Исходный код:

def fib(n):

   a, b = 1, 0

   i = 0

   while a <= n:

       a, b = a+b, a

       i += 1

   return b, i

A = int(input())

_a, i = fib(A)

if _a != A:

   print(-1)

else:

   print(i)

Приложения:
Похожие вопросы
Предмет: Қазақ тiлi, автор: alivip24
Предмет: Русский язык, автор: Просто561
Предмет: Английский язык, автор: азаззазазаазз