我有这段代码:
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")
当我在IDLE上运行它时,它给了我所需的输出,但如果我尝试在黑客等级上使用相同的代码,则会产生运行时错误并且
它说
很好的尝试,但你没有通过这个测试用例。
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
答案 0 :(得分:0)
看起来第一个数字是跟随多少数据值的计数,而不是用于测试斐波那契数字的数字。
作为一个快速解决方法,您可以将while True:
语句替换为:
for n in range(int(input)):
这将输入一个值,循环为n = 0到(该值)-1,然后停止。这将为您提供特定数据的所需输出。