UVA 10344 в Python - PullRequest
       45

UVA 10344 в Python

0 голосов
/ 29 апреля 2020

Я пытаюсь решить эту проблему UVA 10344 . Я написал следующий код в Python:

a,b = 0,1
table = []
for _ in range(1000):
    table.append(b)
    a,b = b, a+b

del table[1]

while(0 or 1):

    try:
        num = int(input())
        print(table[num])
    except EOFError:
        break

Каждый раз, когда я пробую свой код в разных тестовых примерах, я получаю ожидаемый результат. Но когда я отправляю его, я продолжаю получать сообщение об ошибке выполнения. Пожалуйста, помогите.

1 Ответ

0 голосов
/ 29 апреля 2020

Если onlinejudge обозначает завершение, предоставляя пустую строку, то эта строка:

num = int(input())

вызовет ValueError (пустой str неверный аргумент для функции int), который не обрабатывается (как вы заботитесь только о EOFError) и, следовательно, можете вызвать Runtime Error информацию, которую вы описали. Попробуйте заменить:

except EOFError:
    break

, используя:

except Exception:
    break

и отправив его в onlinejudge. Я также предлагаю взглянуть на sys.stdin, если вам нужно взаимодействовать с не людьми через стандартный ввод.

...