''' Вводятся четыре числа: xa, ya: координаты ферзя xb, yb: координаты другой фигуры
Координаты - целые числа в интервале от 1 до 8.
Вывод - булево значение: сможет ли ферзь побить фигуру за 1 ход. ''' def hits(xa, ya, xb, yb) -> bool: ''' Проверка аргументов. ''' args = (xa, ya, xb, yb) if any([not 1 <= z <= 8 for z in args]): raise ValueError("Неверные координаты!")
''' На одной прямой. ''' if xa == xb or ya == yb: return True
''' Северо-западная диагональ. ''' x_nw, y_nw = xa, ya while x_nw > 1 and y_nw > 1: x_nw -= 1 y_nw -= 1 if x_nw == xb and y_nw == yb: return True
''' Юго-восточная диагональ. ''' x_se, y_se = xa, ya while x_se < 8 and y_se < 8: x_se += 1 y_se += 1 if x_se == xb and y_se == yb: return True
''' Юго-западная диагональ. ''' x_sw, y_sw = xa, ya while x_sw > 1 and y_se < 8: x_sw -= 1 y_sw += 1 if x_sw == xb and y_sw == yb: return True
''' Северо-восточная диагональ. ''' x_ne, y_ne = xa, ya while x_ne < 8 and y_se > 1: x_ne += 1 y_ne -= 1 if x_ne == xb and y_ne == yb: return True
return False # если не бьет
inp = [int(x) for x in input().split()] if hits(*inp): print('YES') else: print('NO')
1 байт = 8 бит
1Кб = 1024 байт
Странное задание. Логики не поддается
1)Перевести в килобайты:
• 1024 байт = 1 Кб
• 210 байт = 210 / 1024 = 0,205 Кб
• 213 байт = 213/1024 = 0,208 Кб
• 216 байт = 216/1024 = 0,211 Кб
• 213 бит = 213/8 = 26,625 байт / 1024 = 0,026 Кб
• 216 бит = 216/8 = 27 байт / 1024 = 0,0264 Кб
• 0,25 байт = 0,25/1024 = 0,000244 Кб
2) Расположить величины в порядке возрастания
10 бит, 2 байта, 20 бит, 1010 байт, 1 Кбайт
Задача на повторение темы “Круги Эйлера”
Музык состоит из частей представленных на рисунке - 1,4,5,7
Худ - 2,5,7,6
Спорт - 3,4,7,6
Известно что всего 24 учеников
музыкальную школу посещают 10 человек, значит части 1+4+5+7 = 10
художественную школу - 8 человек, части 2+5+7+6 = 8
спортивную школу - 12 человек, 3+4+7+6 = 12
музыкальную и художественную школу- 3, части 5+7 = 3
художественную и спортивную школу - 2, части 7+6 = 2
музыкальную и спортивную школу - 2, части 4+7 = 2
все три школы посещает 1 человек. часть 7 = 1
т.к. часть 7 = 1, то часть 4 = 1 (2-1), часть 6 = 1 часть 5 = 2
из этого следует (в скобках количество детей)
музыкальную школу посещают 10 человек, значит части 1+4 (1)+5 (2)+7 (1) = 10 значит часть 1 = 10-1-2-1 = 6
художественную школу - 8 человек, части 2+5 (2)+7(1)+6(1) = 8 значит часть 2 = 8-2-1-1=4
спортивную школу - 12 человек, 3+4(1)+7(1)+6(1) = 12 , значит часть 3 = 12-1-1-1 = 9
Всего занято детей = части 1+2+3+4+5+6+7 = 6+4+9+1+2+1+1 = 24
Сколько учеников посещают только одну школу?
Только по одной школе посещают (части 1+2+3) = 6+4+9 = 19 чел
Сколько учащихся ни в чем себя не развивают? Все заняты
Обязательно нарисовать круги, в каждой области указать количество человек.
# Python 3.X
'''
Вводятся четыре числа:
xa, ya: координаты ферзя
xb, yb: координаты другой фигуры
Координаты - целые числа
в интервале от 1 до 8.
Вывод - булево значение:
сможет ли ферзь побить фигуру
за 1 ход.
'''
def hits(xa, ya, xb, yb) -> bool:
'''
Проверка аргументов.
'''
args = (xa, ya, xb, yb)
if any([not 1 <= z <= 8 for z in args]):
raise ValueError("Неверные координаты!")
'''
На одной прямой.
'''
if xa == xb or ya == yb:
return True
'''
Северо-западная диагональ.
'''
x_nw, y_nw = xa, ya
while x_nw > 1 and y_nw > 1:
x_nw -= 1
y_nw -= 1
if x_nw == xb and y_nw == yb:
return True
'''
Юго-восточная диагональ.
'''
x_se, y_se = xa, ya
while x_se < 8 and y_se < 8:
x_se += 1
y_se += 1
if x_se == xb and y_se == yb:
return True
'''
Юго-западная диагональ.
'''
x_sw, y_sw = xa, ya
while x_sw > 1 and y_se < 8:
x_sw -= 1
y_sw += 1
if x_sw == xb and y_sw == yb:
return True
'''
Северо-восточная диагональ.
'''
x_ne, y_ne = xa, ya
while x_ne < 8 and y_se > 1:
x_ne += 1
y_ne -= 1
if x_ne == xb and y_ne == yb:
return True
return False # если не бьет
inp = [int(x) for x in input().split()]
if hits(*inp):
print('YES')
else:
print('NO')