Уведомления

Группа в Telegram: @pythonsu

#1 Май 18, 2016 13:47:19

Straik32423
От: Ростов-на-Дону, Россия
Зарегистрирован: 2016-05-18
Сообщения: 46
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с задачей

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

Шахматный король ходит по горизонтали, вертикали и диагонали, но только на 1 клетку. Даны две различные клетки шахматной доски, определите, может ли король попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести YES, если из первой клетки ходом короля можно попасть во вторую или NO в противном случае.

a = int(input())
b = int(input())
c = int(input())
d = int(input())
if abs(c-a)==1 or abs(c-a)==0 and abs(d-b)==1:
    print("YES")
else:
    print("NO")

Так вот, когда вводятся числа 4 4 5 6, он пишет, “YES”, хотя должно писать “NO”. Подскажите, в чем моя ошибка?

Отредактировано Straik32423 (Май 18, 2016 13:49:19)

Офлайн

#2 Май 18, 2016 14:04:45

noob_saibot
Зарегистрирован: 2013-09-11
Сообщения: 495
Репутация: +  20  -
Профиль   Отправить e-mail  

Помогите с задачей

Straik32423
Вообщем скобки и условие допишите.

Офлайн

#3 Май 18, 2016 14:06:26

vdm_mar
Зарегистрирован: 2015-10-25
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с задачей

может, лучше так

a = int(input())
b = int(input())
c = int(input())
d = int(input())
if abs(c-a) <= 1 and abs(d-b) <= 1:
    print("YES")
else:
    print("NO")

Офлайн

#4 Май 18, 2016 14:16:30

Straik32423
От: Ростов-на-Дону, Россия
Зарегистрирован: 2016-05-18
Сообщения: 46
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с задачей

vdm_mar
может, лучше так
Благодарю

Офлайн

#5 Май 19, 2016 15:04:58

Vigi
От: Курья, Алтай
Зарегистрирован: 2015-02-07
Сообщения: 144
Репутация: +  8  -
Профиль   Отправить e-mail  

Помогите с задачей

for i in 'a', 'b', 'c', 'd':
    vars()[i] = int(input())
print("YES" if abs(c - a) <= 1 and abs(d - b) <= 1 else "NO")

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version