🎉 Parabéns! 🎉
Você resolveu a tarefa brilhantemente! Foi difícil, mas você encontrou a solução certa. Você está um passo mais perto de dominar a programação! Continue assim.
ProgerLib Python para todos
O grande matemático Leonardo Pizan, conhecido sob o pseudônimo Fibonacci, nos deixou a famosa sequência numérica. Cada um de seus elementos, a partir do terceiro, é a soma dos dois anteriores.
rn A sequência de Fibonacci é determinada da seguinte forma:
& Phi; ₀ = 0
& Phi; ₁ = 1
& Phi; ₙ = & Phi; ₙ₋₁ + & Phi; ₙ₋₂ para n & gt; 1
O início da sequência é assim: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...
rnVocê recebe um número natural A. Sua tarefa & mdash; é determinar se este número faz parte da sequência de Fibonacci. Se sim, então exiba seu número de série N (índice), tal que & Phi; n = A. Se o número 1 ocorrer na sequência, considere que seu índice é 1. Se o número A não for um número de Fibonacci, exiba -1.
O número é introduzido por um número inteiro não negativo a (0 ≤ a ≤ 10¹⁸).
Traga um número inteiro: número de série N para o qual & Phi; n = A. Se tal número não existir, retorne -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)
🎉 Parabéns! 🎉
Você resolveu a tarefa brilhantemente! Foi difícil, mas você encontrou a solução certa. Você está um passo mais perto de dominar a programação! Continue assim.
AD
Publicidade
Executando seu código...