🎉 ¡Felicidades! 🎉
¡Has resuelto la tarea brillantemente! Era un reto difícil, pero encontraste la solución correcta. ¡Estás un paso más cerca de dominar la programación! Sigue así, cada etapa superada te hace más fuerte.
ProgerLib Python para todos
El gran matemático Leonardo Pisano, conocido bajo el seudónimo de Fibonacci, nos legó la famosa secuencia numérica. Cada uno de sus elementos, a partir del tercero, es la suma de los dos anteriores.
rn La secuencia de Fibonacci se determina de la siguiente manera:
& Phi; ₀ = 0
& Phi; ₁ = 1
& Phi; ₙ = & Phi; ₙ₋₁ + & Phi; ₙ₋₂ para n & gt; 1
El inicio de la secuencia se ve así: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...
rnSe te da un número natural A. Tu tarea & mdash; Determinar si este número es parte de la secuencia de Fibonacci. Si es así, entonces muestra su número de serie N (índice), tal que & Phi; n = A. Si el número 1 aparece en la secuencia, asume que su índice es 1. Si el número A no es un número de Fibonacci, muestra -1.
Se introduce un número entero no negativo a (0 ≤ a ≤ 10¹⁸).
Ingrese un número entero: el número de serie N para el cual & Phi; n = A. Si dicho número no existe, devuelva -1.
55
10
# Получаем на вход число A
a = int(input())
# Обрабатываем частный случай для 0
if a == 0:
print(0)
else:
# Инициализируем первые два члена последовательности и их индекс n.
# f0 соответствует φ(n-1), f1 соответствует φ(n)
f0, f1 = 0, 1
n = 1
# Используем цикл while для генерации чисел Фибоначчи,
# пока текущее число f1 меньше искомого числа a.
while f1 < a:
# Это "магия" Python для параллельного присваивания.
# Новое значение f0 становится старым f1,
# а новое f1 становится суммой старых f0 и f1.
# Это эквивалентно:
# temp = f1
# f1 = f0 + f1
# f0 = temp
f0, f1 = f1, f0 + f1
n += 1
# После выхода из цикла проверяем, почему он завершился.
# Если f1 равно a, значит, мы нашли число.
if f1 == a:
print(n)
# Если f1 стало больше a, значит, мы "проскочили" искомое число,
# и его нет в последовательности.
else:
print(-1)
🎉 ¡Felicidades! 🎉
¡Has resuelto la tarea brillantemente! Era un reto difícil, pero encontraste la solución correcta. ¡Estás un paso más cerca de dominar la programación! Sigue así, cada etapa superada te hace más fuerte.
AD
Publicidad
Ejecutando tu código...