Pru*_*Raj 2 python fibonacci python-3.x
我已经编写了一个程序,该程序将多个测试用例作为输入,而对于每个测试用例,则需要一个数字作为输入。最后,它检查您输入的数字是否是斐波那契数字,并进行相应打印。我在PC上运行它没有问题,但是当我将其上传到CodeChef.com(在这里看到了这个问题)时,它显示了运行时错误。感谢您的任何帮助,由于我是菜鸟,我的代码可能看起来很冗长。欢迎进行任何修改。谢谢!
这是我的代码:
def isperfect(n):
import math
if n < 0:
print("No Solution")
return False
else:
test = int(math.sqrt(n))
return test*test == n
test_cases = int(input())
count = 0
store = []
while count < test_cases:
x = int(input())
store.append(x)
count += 1
for each_item in store:
assert isinstance(each_item, int)
s1 = 5*each_item*each_item-4
s2 = 5*each_item*each_item+4
if(isperfect(s1) == True or isperfect(s2) == True):
print("YES")
else:
print("NO")
Run Code Online (Sandbox Code Playgroud)
这是我遇到的最优雅的解决方案:
def is_fibonacci(n):
phi = 0.5 + 0.5 * math.sqrt(5.0)
a = phi * n
return n == 0 or abs(round(a) - a) < 1.0 / n
Run Code Online (Sandbox Code Playgroud)
该代码不是我的,由@ sven-marnach发布。原始帖子: 检查输入属于python中的斐波那契数
归档时间: |
|
查看次数: |
6090 次 |
最近记录: |