这是一种不需要先前计算的方法,因此对于 性能 以及在检查非常大的数字时非常有用。
该程序:
from math import *n = int(input("Enter a number:"))if sqrt(5*n**2+4)%1==0 or sqrt(5*n**2-4)%1==0: print("Your number is a Fibonacci number!")else: print("Your number is not a Fibonacci number.") c = 0 while 1: c += 1 if sqrt(5*(n+c)**2+4)%1==0 or sqrt(5*(n+c)**2-4)%1==0: print("%s is the closest Fibonacci number to your entry." % str(n+c)) break if sqrt(5*(n-c)**2+4)%1==0 or sqrt(5*(n-c)**2-4)%1==0: print("%s is the closest Fibonacci number to your entry." % str(n-c)) break
说明:
如果(5 * n ^ 2 + 4)或(5 * n ^ 2-4 – 4)是一个理想平方,则n是斐波那契数。
程序输入/输出
Enter a number: 9999999999Your number is not a Fibonacci number.9999816735 is the closest Fibonacci number to your entry.Enter a number: 9999816735Your number is a Fibonacci number!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)