Найти - Пользователи
Полная версия: pythontutor.ru - помощь по задачам
Начало » Python для новичков » pythontutor.ru - помощь по задачам
1 2
dzen
Условие
Шахматный слон ходит по диагонали. Даны две различные клетки шахматной доски, определите, может ли слон попасть с первой клетки на вторую одним ходом.

 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')
НЕ проходит один тест,
7
4
2
5
Какое исключение не хватает?
FishHook
dzen
Предлагаю поразмышлять иначе. Слон ходит по диагонали. По диагонали чего? Очевидно, что по диагонали квадрата. Вам надо проверить, являются ли координаты вершинами квадрата. Для этого достаточно сравнить равенство вертикальной и горизонтальной сторон. Длина стороны вычисляется как разность координат. Длину вертикальной стороны получим разностью вертикальных координат, горизонтальной - горизонтальных. Итого - одно математическое вычисление.
FishHook
dzen
Благодарю за елегантное решение
py.user.next
  
if abs(x1 - x2) == abs(y1 - y2):
    print('YES')
else:
    print('NO')

Наверняка тесты будут подавать разные расположения точек.
dzen
Вот еще одна загадка:

Улитка ползет по вертикальному шесту высотой h метров, поднимаясь за день на a метров, а за ночь спускаясь на b метров. На какой день улитка доползет до вершины шеста?

Программа получает на вход натуральные числа h, a, b.

Программа должна вывести одно натуральное число. Гарантируется, что a>b.
PEHDOM
От h отнимаешь a, потом считаешь скорость улитки в день a-b, потом считаешь за сколько дней улитка с такой скотостью проползет h-a(округляешь до большего) и добавляешь 1. Итоговая формула: math.ceil((h-a)/(a-b))+1 будет колличество дней за которое улитка доползет до вершины.
py.user.next
PEHDOM
Итоговая формула: math.ceil((h-a)/(a-b))+1
Не, не так просто тут решается. :)

Для h=1 a=3 b=2 получается -1.
PEHDOM
py.user.next
Не, не так просто тут решается.
Я в курсе, что при a больше h в два и более раза, результат будет ноль или отрицательным, это решаеться банальной проверкой: если а больше b тогда 1 - иначе считаем по формуле.
Поскольку эта задача учебная, то она не предполагает что а будет болше h, иначе накой ляд тогда даеться b? Разв что перподаватель захочет завалить ученика и начнет придираться…
Это детская задача для детей гдето 6-8 лет. звучит примерно так h=10, a=3, b=2. Нужно решить в уме.
Первое что приходит в голову это тупо посчитать скорость улитки в день(a-b) выходит 1 метр в день, следовательно 10 метров улитка проползет за 10 дней. Что собсвенно неверно. Потому как на восьмой день улитка стартует с отметки в 7м, проползает три метра и достигает вершины. Вниз ей сползать уже ненужно.
Нет конечно можно захерачить модель, и в цикле перемещать “улитку” вверх “днем”, а потом вниз “ночью”, считая к-во дней, и постоянно сверяя пройденое расстояние с высотой, но все банально считается по формуле.
py.user.next
PEHDOM
Это детская задача для детей гдето 6-8 лет
Нет никаких детских задач. Есть улитка, она ползает в космическом корабле, у неё на спине ядерный заряд. Ты говоришь “а пускай она -1 вернёт”. Была же реальная ошибка в F-16, который неправильно летал из-за переполнения переменной.

PEHDOM
Вниз ей сползать уже ненужно.
Это модель улитки. А сама улитка вообще нафиг не нужна. Если бы эта улитка была реальной, можно было бы просто взять эту палку, по которой она ползает, и выбросить в окно с третьего этажа.

В задании ясно сказано, что на h есть только одно ограничение: значение h - натуральное число. А натуральное число - это целое число от 1 до +inf.

(Мы эту задачу тут решали уже года два назад. Я её сейчас распаковал и там у меня тесты все составлены ещё с тех времён. Я прогнал их и они показали, что твой вариант падает на такой комбинации. Тогда пацан тоже запарился решать её правильно и так и не решил. А я её не решил тогда, потому что лень было.)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB