Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 11, 2018 16:57:36

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

Помогите с решением, пожалуйста.

 [code python][code python][code python][/code][/code][/code]
Начал изучать этот увлекательный язык программирования и столкнулся с такой задачей:

Условие
Яша плавал в бассейне размером N × M метров и устал. В этот момент он обнаружил, что находится на расстоянии x метров от одного из длинных бортиков (не обязательно от ближайшего) и y метров от одного из коротких бортиков. Какое минимальное расстояние должен проплыть Яша, чтобы выбраться из бассейна на бортик? Программа получает на вход числа N, M, x, y. Программа должна вывести число метров, которое нужно проплыть Яше до бортика.
43
33
6
30

Я написал следующий код:

n=int(input())
m=int(input())
x=int(input())
y=int(input())
if x<y and m<n:
l1=n-y
l2=m-x
l12=n-x
l21=m-y
elif x<y and m>n:
l1=m-y
l2=n-x
l12=m-x
l21=n-y
elif x>y and m>n:
l1=n-y
l2=m-x
l12=n-x
l21=m-y
else:
l1=n-x
l2=m-y
l12=n-y
l21=m-x
if l12>0 and l21>0:
if x<y and x<l1 and x<l2 and x<l12 and x<l21:
print(x)
elif y<x and y<l1 and y<l2 and y<l12 and y<l21:
print(y)
elif l1<x and l1<y and l1<l2 and l1<l12 and l1<l21:
print(l1)
elif l2<x and l2<y and l2<l1 and l2<l12 and l2<l21:
print(l2)
elif l12<x and l12<y and l12<l1 and l12<l2 and l12<l21:
print(l12)
else:
print(l21)
elif l12<0 and l21>0:
if x<y and x<l1 and x<l2 and x<l21:
print(x)
elif y<x and y<l1 and y<l2 and y<l21:
print(y)
elif l1<x and l1<y and l1<l2 and l1<l21:
print(l1)
elif l2<x and l2<y and l2<l1 and l2<l21:
print(l2)
else:
print(l21)
elif l12>0 and l21<0:
if x<y and x<l1 and x<l2 and x<l12:
print(x)
elif y<x and y<l1 and y<l2 and y<l12:
print(y)
elif l1<x and l1<y and l1<l2 and l1<l12:
print(l1)
elif l2<x and l2<y and l2<l1 and l2<l12:
print(l2)
else:
print(l12)
else:
if x<y and x<l1 and x<l2:
print(x)
elif y<x and y<l1 and y<l2:
print(y)
elif l1<x and l1<y and l1<l2:
print(l1)
else:
print(l2)
Правильно ли все работает? А так же может посоветуете новичку в программировании какие то полезные ресурсы для более качественного изучения)

Отредактировано Yurkof (Сен. 11, 2018 16:59:30)

Офлайн

#2 Сен. 11, 2018 18:15:34

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Помогите с решением, пожалуйста.

полезный ресурс там и проверите правильно ли работает если правильно то увидите как это написано автором и другими пользователями

Офлайн

#3 Сен. 11, 2018 18:18:37

rami
Зарегистрирован: 2018-01-08
Сообщения: 281
Репутация: +  72  -
Профиль   Отправить e-mail  

Помогите с решением, пожалуйста.

Решение:

 N=int(input('N='))
M=int(input('M='))
x=int(input('x='))
y=int(input('y='))
    
L = min(x, y, min(M,N)-x, max(M,N)-y)
print('Нужно проплыть {} м. до ближайшего бортика'.format(L))

Офлайн

#4 Сен. 12, 2018 01:04:37

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

Помогите с решением, пожалуйста.

marvellik
полезный ресурс там и проверите правильно ли работает если правильно то увидите как это написано автором и другими пользователями
Благодарю за помощь, на этом сайте и считал свою задачу. Там 40 вариантов входящих данных и у меня в трех случаях правильный ответ не совпал с заданным что собственно и побудило меня задать вопрос на этом форуме. Поскольку не все варианты в моем случае оказались верными, алтернативных решений задачи я не смог увидитью Потому как в моем понимании согласно поставленной задачи данный код работает корректно. Может написано и не совсем эстетично верно.

Офлайн

#5 Сен. 12, 2018 01:08:19

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

Помогите с решением, пожалуйста.

rami
Решение:
Огромное спасибо. Очень интересный код, использовано много того что я в первые вижу. С удовольствием буду разбираться. Благодарю за уделенное время.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version