Найти - Пользователи
Полная версия: Помогите с решением, пожалуйста.
Начало » Центр помощи » Помогите с решением, пожалуйста.
1
Yurkof
 [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)
Правильно ли все работает? А так же может посоветуете новичку в программировании какие то полезные ресурсы для более качественного изучения)
marvellik
полезный ресурс там и проверите правильно ли работает если правильно то увидите как это написано автором и другими пользователями
rami
Решение:
 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))
Yurkof
marvellik
полезный ресурс там и проверите правильно ли работает если правильно то увидите как это написано автором и другими пользователями
Благодарю за помощь, на этом сайте и считал свою задачу. Там 40 вариантов входящих данных и у меня в трех случаях правильный ответ не совпал с заданным что собственно и побудило меня задать вопрос на этом форуме. Поскольку не все варианты в моем случае оказались верными, алтернативных решений задачи я не смог увидитью Потому как в моем понимании согласно поставленной задачи данный код работает корректно. Может написано и не совсем эстетично верно.
Yurkof
rami
Решение:
Огромное спасибо. Очень интересный код, использовано много того что я в первые вижу. С удовольствием буду разбираться. Благодарю за уделенное время.
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