Вопрос задан 24.06.2023 в 19:18. Предмет Информатика. Спрашивает Казак Саня.

Даю 30 баллов. Задача Python Номер числа Фибоначчи Последовательность Фибоначчи определяется так:

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

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Тужулкина Виктория.

Примечание:

Использовался ЯП 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)


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Прекрасная задача! Давай решим её вместе. Для определения, является ли число A числом Фибоначчи, можно воспользоваться формулой Бине. Но давай сделаем это проще.

python
def 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. Давай попробуем запустить код с каким-нибудь числом!

0 0

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

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

Последние заданные вопросы в категории Информатика

Задать вопрос