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