2015-02-01 2 views
-3

У меня этот код:Поиск Фибоначчи Числа

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 
+0

Возможный дубликат [Python 3: EOF при чтении строки (Sublime Text 2 сердится)] (http://stackoverflow.com/questions/12547683/python-3-eof-when-reading-a-line- sublime-text-2-is-angry) – Maroun

+0

Это не правильный дубликат, хотя сообщение об ошибке одно и то же. @MarounMaroun – tripleee

+1

Просто ** посмотрите ** на сообщение. Вы не соответствуете этому случаю и имеете неправильное количество тестовых случаев. Перечитайте спецификацию. – jonrsharpe

ответ

0

Похоже, первым номером является подсчетом того, как значения многих данных следует, а не номер для проверки того, чтобы быть числом Фибоначчи.

В общем быстро-н-грязного исправить, вы могли бы заменить while True: заявление с:

for n in range(int(input)): 

Это будет ввести значение, петля для п = 0 до (это значение) -1, то остановить , Это даст вам желаемый результат по этим конкретным данным.

+1

'int (input())' ... – jonrsharpe

+0

@jonrsharpe Спасибо. Исправлено. –

Смежные вопросы