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

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

Программа:
Python:
A = int(input())
if A == 0:
print(0)
else:
f0, f1 = 0, 1
tmp = 1
while f1 <= A:
if f1 == A:
print(tmp)
break
f0, f1 = f1, f0 + f1
tmp += 1
else:
print(-1)
Объяснение:
В начале вводится натуральное число А. Сразу идёт проверка: если число равно нулю, то выводится ноль. Иначе начинается основной код: переменной f0 присваивается 0, переменной f1 единица, переменной index также единица. Теперь с помощью цикла while выполняем тело цикла до тех пор, пока f1 ≤ A. Идёт проверка на то, равняется ли f1 переменной А. Если да, то выводится значение переменной index и цикл останавливается. Всегда значению f0 присваивается значение f1, переменной f1 - сумма f0 и f1. Увеличивается значение переменной index на 1: в этой переменной как раз таки и хранится номер по счёту в последовательности Фибоначчи.
Результат:
8
6
10
-1
233
13



Для решения этой задачи вам нужно использовать цикл while
, чтобы находить числа Фибоначчи до тех пор, пока текущее число Фибоначчи меньше или равно заданному числу A. Вот Python-код для этой задачи:
pythonA = int(input()) # Ввод числа A
fib1, fib2, n = 0, 1, 1 # Инициализация первых двух чисел Фибоначчи и номера n
while fib1 < A:
fib1, fib2 = fib2, fib1 + fib2 # Обновляем значения чисел Фибоначчи
n += 1 # Увеличиваем номер n
if fib1 == A:
print(n) # Если число A является числом Фибоначчи, выводим номер n
else:
print(-1) # В противном случае выводим -1
Этот код сначала считывает входное число A, затем использует цикл while
, чтобы вычислить числа Фибоначчи и увеличивать номер n до тех пор, пока текущее число Фибоначчи меньше A. Если число A равно текущему числу Фибоначчи, программа выводит номер n. В противном случае программа выводит -1.


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








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







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