Вопрос задан 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\).

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

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

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

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