
Даю 30 баллов. Задача Python Номер числа Фибоначчи Последовательность Фибоначчи определяется так:
ϕ0=0,ϕ1=1,ϕn=ϕn−1+ϕn−2 Дано натуральное число A. Определите, каким по счету числом Фибоначчи оно является, то есть выведите такое число n, что ϕn=A. Если A не является числом Фибоначчи, выведите число −1. Входные данные: Вводится натуральное число A (2≤A≤2∗109). Выходные данные: Выведите ответ на задачу.

Ответы на вопрос

Примечание:
Использовался ЯП 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)




Прекрасная задача! Давай решим её вместе. Для определения, является ли число A числом Фибоначчи, можно воспользоваться формулой Бине. Но давай сделаем это проще.
pythondef is_perfect_square(n):
sqrt_n = int(n**0.5)
return sqrt_n * sqrt_n == n
def is_fibonacci_number(a):
if a == 0 or a == 1:
return True
return is_perfect_square(5 * a * a + 4) or is_perfect_square(5 * a * a - 4)
def find_fibonacci_number_index(a):
if a == 0:
return 0
elif a == 1:
return 1
fib_prev, fib_curr, index = 0, 1, 1
while fib_curr < a:
fib_prev, fib_curr = fib_curr, fib_prev + fib_curr
index += 1
if fib_curr == a:
return index
else:
return -1
# Ввод числа A
A = int(input())
# Проверка и вывод результата
if is_fibonacci_number(A):
result = find_fibonacci_number_index(A)
print(result)
else:
print(-1)
Этот код начинает с проверки, является ли число A числом Фибоначчи, и затем, если оно таковым является, находит его индекс. Если не является - выводится -1. Давай попробуем запустить код с каким-нибудь числом!


Похожие вопросы








Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili