मान लीजिए कि हमारे पास एक संख्या n है। हमें यह जांचना है कि n फाइबोनैचि अनुक्रम में मौजूद है या नहीं। जैसा कि हम फाइबोनैचि अनुक्रम में जानते हैं f(i) =f(i-1) + f(i-2) प्रत्येक i के लिए 2 से n तक, और f(0) =0, f(1) =1.
इसलिए, यदि इनपुट n =13 की तरह है, तो आउटपुट सही होगा, क्योंकि फाइबोनैचि अनुक्रम में कुछ शब्द हैं:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, इसलिए 34 मौजूद है ।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- phi :=0.5 + 0.5 * वर्गमूल(5.0)
- a :=phi * n
- सही लौटें जब n 0 के समान हो या a एक पूर्णांक हो
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
from math import sqrt def solve(n): phi = 0.5 + 0.5 * 5.0**0.5 a = phi * n return n == 0 or abs(round(a) - a) < 1.0 / n n = 13 print(solve(n))
इनपुट
13
आउटपुट
True