Форум сайта python.su
0
Условие
Шахматный слон ходит по диагонали. Даны две различные клетки шахматной доски, определите, может ли слон попасть с первой клетки на вторую одним ходом.
x1 = int(input()) y1 = int(input()) x2 = int(input()) y2 = int(input()) if x2 + x1 == y2 + y1: print('YES') elif x2 - x1 == y2 + y1: print('YES') elif x2 - x1 == y2 - y1: print('YES') elif x2 + x1 == y2 - y1: print('YES') elif x1 + y1 == x2 + y2: print('YES') else: print('NO')
Отредактировано FishHook (Апрель 17, 2017 18:55:37)
Офлайн
568
dzen
Предлагаю поразмышлять иначе. Слон ходит по диагонали. По диагонали чего? Очевидно, что по диагонали квадрата. Вам надо проверить, являются ли координаты вершинами квадрата. Для этого достаточно сравнить равенство вертикальной и горизонтальной сторон. Длина стороны вычисляется как разность координат. Длину вертикальной стороны получим разностью вертикальных координат, горизонтальной - горизонтальных. Итого - одно математическое вычисление.
Офлайн
568

Офлайн
0
Благодарю за елегантное решение
Офлайн
857
if abs(x1 - x2) == abs(y1 - y2): print('YES') else: print('NO')
Отредактировано py.user.next (Апрель 18, 2017 01:50:47)
Офлайн
0
Вот еще одна загадка:
Улитка ползет по вертикальному шесту высотой h метров, поднимаясь за день на a метров, а за ночь спускаясь на b метров. На какой день улитка доползет до вершины шеста?
Программа получает на вход натуральные числа h, a, b.
Программа должна вывести одно натуральное число. Гарантируется, что a>b.
Отредактировано dzen (Апрель 20, 2017 00:38:20)
Офлайн
294
От h отнимаешь a, потом считаешь скорость улитки в день a-b, потом считаешь за сколько дней улитка с такой скотостью проползет h-a(округляешь до большего) и добавляешь 1. Итоговая формула: math.ceil((h-a)/(a-b))+1 будет колличество дней за которое улитка доползет до вершины.
[code python][/code]
Отредактировано PEHDOM (Апрель 20, 2017 01:17:18)
Офлайн
857
PEHDOMНе, не так просто тут решается. :)
Итоговая формула: math.ceil((h-a)/(a-b))+1
Офлайн
294
py.user.nextЯ в курсе, что при a больше h в два и более раза, результат будет ноль или отрицательным, это решаеться банальной проверкой: если а больше b тогда 1 - иначе считаем по формуле.
Не, не так просто тут решается.
[code python][/code]
Отредактировано PEHDOM (Апрель 20, 2017 09:48:51)
Офлайн
857
PEHDOMНет никаких детских задач. Есть улитка, она ползает в космическом корабле, у неё на спине ядерный заряд. Ты говоришь “а пускай она -1 вернёт”. Была же реальная ошибка в F-16, который неправильно летал из-за переполнения переменной.
Это детская задача для детей гдето 6-8 лет
PEHDOMЭто модель улитки. А сама улитка вообще нафиг не нужна. Если бы эта улитка была реальной, можно было бы просто взять эту палку, по которой она ползает, и выбросить в окно с третьего этажа.
Вниз ей сползать уже ненужно.
Отредактировано py.user.next (Апрель 20, 2017 10:08:47)
Офлайн