Вопрос задан 07.11.2026 в 09:58.
Предмет Информатика.
Спрашивает Ситников Миша.
Решите задачу на Python:
Номер числа Фибоначчи
Последовательность Фибоначчи определяется так:
ϕ0=0, ϕ1=1, ϕn=ϕn−1+ϕn−2
Дано натуральное число A. Определите, каким по счету числом Фибоначчи оно является, то есть выведите такое число n, что ϕn=A. Если A не является числом Фибоначчи, выведите число −1.
Входные данные
Вводится натуральное число A (2≤A≤2∗10^9).
Выходные данные
Выведите ответ на задачу с использованием цикла while, а не for!!!!
Примеры
Ввод Вывод
8_______10
6_______-1
Ответы на вопрос
Отвечает Попов Никита.
Нужно по очереди строить числа Фибоначчи, пока очередное число не станет не меньше \(A\). Если оно равно \(A\), выводим его номер; иначе выводим \(-1\).
Решение на Python с циклом while:
a = int(input())
f0 = 0
f1 = 1
n = 1
while f1 < a:
f0, f1 = f1, f0 + f1
n += 1
if f1 == a:
print(n)
else:
print(-1)
Например, для \(A=8\) программа выведет \(6\), потому что \(\phi_6=8\). Для \(A=106\) она выведет \(-1\).
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

