Как найти пересечение двух отрезков на прямой?
На вход даются 2 отрезка [a1,b1], [a2,b2]. При это b1>a1, b2>a2 Программа должна вывести на экран границы отрезка, являющегося пересечением, либо общую точку, либо текст «пустое множество».
while True:
a1 = int(input('a1 = '))
b1 = int(input('b1 = '))
if b1 > a1:
break
else:
print("Введите b1 > a1")
while True:
a2 = int(input('a2 = '))
b2 = int(input('b2 = '))
if b2 > a2:
break
else:
print("Введите b2 > a2")
if a2 > b1 or b2 < a1:
print ("пустое множество")
elif b2 == a1:
print (b2)
elif a2 == b1:
print (b1)
elif a2 == a1 and b2 == b1:
print (a1, b1)
elif a2 <= b1 and a2 > a1:
print(a2,b1)
elif b2 <= b1 and a2 < a1:
print(a1, b2)
Stepik выдаёт ошибку: Test input: 1 3 2 4 Correct output: 2 3
Your code output: a1 = b1 = a2 = b2 = 2 3
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Уберите подсказки из инпутов
a1 = int(input())
вместо
a1 = int(input('a1 = '))
Проверяющей системе они не нужны, а только мешают.
Кроме того, циклы while для обеспечения правильного ввода не нужны, система не будет стараться исправить свои ошибки ;) Обычно гарантируется корректность ввода,