Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 6, 2015 13:24:39

Vathys
Зарегистрирован: 2015-09-21
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Решение линейного уравнения или как пропустить (?) команду

Условие задачи следующее:
Даны числа a и b. Решите в целых числах уравнение ax+b=0. Выведите все решения этого уравнения, если их число конечно, выведите слово NO, если решений нет, выведите слово INF, если решений бесконечно много.

Мой код:

a=int(input())
b=int(input())
x=-b/a
if x!=int(x)or a==0 and b!=0:
    print("No")
elif a==0 and b==0:
    print ("INF")
else:
    print(x)

Проблема в том, что команда x=-b/a выполняется даже тогда, когда требуется просто сравнить a и b с 0, и выводится ошибка “division by zero”. Как сделать так, чтобы эта команда не выполнялась?Помогите, пожалуйста.

P.S. Я пыталась переставлять строчки, проверять сначала на нули, но x=-b/a программа считывает, где бы тот ни находился.

Отредактировано Vathys (Окт. 6, 2015 15:27:28)

Офлайн

#2 Окт. 6, 2015 13:33:14

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Решение линейного уравнения или как пропустить (?) команду

Может быть сначала нужно проверять на нули, а потом уже делить?
Не, я не знаю, как правильно, может быть логично сначала поделить, а потом уже проверять, можно ли было делить вообще, но мне кажется, что это неправильно. Ну чисто из личного опыта. Я, например, всегда сначала снимаю штаны,
а потом уже сажусь на горшок, и молоко я тоже сначала нюхаю (а вдруг прокисло?) а потом уже пью.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version