Python 寻找斐波那契数

Python 寻找斐波那契数,python,Python,我有这个密码: while True: a=0 b=1 l=[] N=int(input()) chk=0 for k in range(N): l.append(0) for i in range(N): a,b=b,a+b l[i]+=b for j in range(len(l)): if l[j]==N: chk=1 break if chk==1: print("Isfibo") else: p

我有这个密码:

while True:

a=0
b=1
l=[]
N=int(input())

chk=0
for k in range(N):
    l.append(0)


for i in range(N):
    a,b=b,a+b
    l[i]+=b

for j in range(len(l)):
    if l[j]==N:
        chk=1
        break

if chk==1:
    print("Isfibo")
else:
    print("Isnotfibo")
当我在空闲状态下运行它时,它会给我所需的输出,但是如果我尝试在黑客等级上使用相同的代码,它会给出运行时错误,并且

上面说

很好的尝试,但是您没有通过此测试用例

Input (stdin)
3
5
7
8

Your Output (stdout)
Isfibo
Isfibo
Isnotfibo
Isfibo

Expected Output
IsFibo
IsNotFibo
IsFibo

Compiler Message
 Runtime Error
Error (stderr)

Traceback (most recent call last):

  File "solution.py", line 6, in <module>
  N=int(input())

EOFError: EOF when reading a line

看起来第一个数字是后面有多少数据值的计数,而不是用来测试是否为斐波那契数的数字

作为一个完整的quick-n-dirty修复程序,您可以将while-True:语句替换为:

for n in range(int(input)):

这将输入一个值,循环n=0到该值-1,然后停止。这将为您提供该特定数据的所需输出。

即使错误消息相同,该数据的可能副本也不是正确的副本@马龙马龙只要看看留言就行了。您与案例不匹配,并且测试案例的数量错误。重新阅读说明书。@jornsharpe谢谢。现在修好了。