Giả sử chúng ta có một số nói n. Chúng ta phải kiểm tra xem n có trong dãy Fibonacci hay không. Như chúng ta đã biết trong dãy Fibonacci f (i) =f (i-1) + f (i-2) với mỗi i từ 2 đến n và f (0) =0, f (1) =1.
Vì vậy, nếu đầu vào là n =13, thì đầu ra sẽ là Đúng, vì một số số hạng trong dãy Fibonacci là:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, vì vậy 34 là hiện tại .
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- phi:=0,5 + 0,5 * căn bậc hai của (5,0)
- a:=phi * n
- trả về true khi n giống 0 hoặc a là số nguyên
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
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))
Đầu vào
13
Đầu ra
True