Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để kiểm tra xem một số nhất định có phải là số Fibonacci trong Chương trình Python hay không?

Trong bài viết này, chúng ta sẽ tìm hiểu về giải pháp cho câu lệnh vấn đề được đưa ra bên dưới -

Tuyên bố vấn đề

Cho một số n, hãy kiểm tra xem n có phải là số Fibonacci hay không

Tất cả chúng ta đều biết rằng số Fibonacci thứ n là tổng của hai số Fibonacci trước đó. Nhưng chúng cũng cung cấp một mối quan hệ thú vị khác với mối quan hệ lặp lại.

Một số có bản chất là Fibonacci nếu và chỉ khi (5 * n2 + 4) hoặc (5 * n2 - 4) là một hình vuông hoàn hảo.

Chúng tôi sẽ sử dụng thuộc tính này để kiểm tra xem một số có phải là Fibonacci hay không.

Bây giờ chúng ta hãy xem việc triển khai tập lệnh Python -

Ví dụ

import math
# if x is perfect square
def isPerfectSquare(x):
   s = int(math.sqrt(x))
   return s*s == x
# if n is a Fibinacci Number
def isFibonacci(n):
   #if one of 5*n*n + 4 or 5*n*n - 4 or both is a perferct square
   return isPerfectSquare(5*n*n + 4) or isPerfectSquare(5*n*n - 4)
for i in range(1,11):
   if (isFibonacci(i) == True):
      print (i,"is a Fibonacci Number")
   else:
      print (i,"is a not Fibonacci Number")

Đầu ra

1 is a Fibonacci Number
2 is a Fibonacci Number
3 is a Fibonacci Number
4 is a not Fibonacci Number
5 is a Fibonacci Number
6 is a not Fibonacci Number
7 is a not Fibonacci Number
8 is a Fibonacci Number
9 is a not Fibonacci Number
10 is a not Fibonacci Number

Tất cả các hàm và biến được khai báo trong khung toàn cục như trong hình bên dưới -

Làm cách nào để kiểm tra xem một số nhất định có phải là số Fibonacci trong Chương trình Python hay không?

Kết luận

Trong bài viết này, chúng ta đã tìm hiểu giải pháp xác định rằng số đã cho có phải là Fibonacci hay không.