• 1
    डेटा I/O
    • कार्य
  • 2
    शर्तें
    • कार्य
  • 3
    for लूप
    • कार्य
  • 4
    स्ट्रिंग
    • कार्य
  • 5
    while लूप
    • कार्य
  • 6
    सूचियां
    • कार्य
  • 7
    2D मैट्रिक्स
    • कार्य
  • 8
    डिक्शनरी
    • कार्य
  • 9
    सेट
    • कार्य
  • 10
    फ़ंक्शन
    • कार्य
  • к

पाठ 5. While cycle

कठिनाई:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

कार्य«लियोनार्डो पिज़ान»

💻 Python

महान गणितज्ञ लियोनार्डो पिज़ान, जो छद्म नाम फिबोनाची से जाने जाते हैं, ने हमें प्रसिद्ध संख्यात्मक अनुक्रम दिया। इसका प्रत्येक तत्व, तीसरे से शुरू होकर, पिछले दो तत्वों का योग होता है।

rn

फिबोनाची अनुक्रम इस प्रकार परिभाषित किया गया है:
Φ₀ = 0
Φ₁ = 1
Φₙ = Φₙ₋₁ + Φₙ₋₂, जहाँ n > 1

rn

अनुक्रम की शुरुआत इस प्रकार दिखती है: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...

rn

आपको एक प्राकृतिक संख्या A दी गई है। आपका कार्य — यह निर्धारित करना है कि यह संख्या फिबोनाची अनुक्रम का भाग है या नहीं। यदि हाँ, तो इसका क्रमांक N (सूचकांक) निकालें, जैसे कि Φₙ = A। यदि संख्या 1 अनुक्रम में आती है, तो मान लें कि इसका सूचकांक 1 है। यदि संख्या A फिबोनाची संख्या नहीं है, तो -1 निकालें।

इनपुट फॉर्मेट

यह एक पूर्ण गैर-ऋणात्मक संख्या a (0 ≤ a ≤ 10¹⁸) द्वारा प्रस्तुत किया गया है।

आउटपुट फॉर्मेट

एक पूर्ण संख्या लाएं: क्रमांक N जिसके लिए & Phi; n = A है। यदि ऐसी कोई संख्या मौजूद नहीं है, तो -1 प्राप्त करें।

उदाहरण

इनपुट

55

आउटपुट

10

संकेत

There will be no clue here, decide for yourself!

main.py
परीक्षण 1
परीक्षण 2
परीक्षण 3
परीक्षण 4
परीक्षण 5
परीक्षण 6
परीक्षण 7
परीक्षण 8
परीक्षण 9
परीक्षण 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)

🎉 बधाई! 🎉

आपने कार्य को शानदार ढंग से हल किया! यह कठिन था, लेकिन आपने सही उत्तर खोजा। आप प्रोग्रामिंग में महारत के करीब हैं! ऐसे ही जारी रखें।

AD

विज्ञापन

red-snake blue-snake green-snake

कोड चल रहा है...

AI सहायक

नमस्ते! मैं आपका प्रोग्रामिंग सहायक हूँ। Python के बारे में कोई भी सवाल पूछें — मैं functions, methods समझा सकता हूँ और मौजूदा task में मदद कर सकता हूँ!