寻找斐波纳契数

时间:2015-02-01 07:43:41

标签: 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:
    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

1 个答案:

答案 0 :(得分:0)

看起来第一个数字是跟随多少数据值的计数,而不是用于测试斐波那契数字的数字。

作为一个快速解决方法,您可以将while True:语句替换为:

for n in range(int(input)):

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