Добрый день! В этом блоке представляю вашему вниманию типовые, но интересные задачи, в которых отрабатывается навык использования логического оператора "IF". Задачи взятых из курса обучения "Основы программирования на Python" (автор курса: National Research University Higher School of Economics), размещенному на сайте coursera.org.
Ход короля.
"Фигура короля в шахматах ходит по вертикали, по горизонтали и по диагонали на 1 клетку. Заданы две разные клетки шахматной доски и
требуется определить, может ли король перейти с первой клетки на вторую за один ход.
Выведите "YES", если такой ход возможен или "NO" если это не получиться сделать."
(описание задачи взято с сайта www.coursera.org/learn/python-osnovy-programmirovaniya/programming/)
Решение
x1 = int(input())
y1 = int(input())
x2 = int(input())
y2 = int(input())
if x1 == x2 and y1 == y2:
....print('NO')
elif x1 - x2 > 1 or x1 - x2 < -1:
....print('NO')
elif y1 - y2 > 1 or y1 - y2 < -1:
....print('NO')
else:
....print('YES')
Квартиры.
"Есть многоквартирный дом, в котором несколько подъездов. В каждом подъезде количество квартир одинаковое. Нумерация квартир подряд, начиная с единицы. Возможно ли, чтобы в каком-то подъезде у первой квартиры был номер x, а у последней номер y (x ≤ y)?
"YES" , если такое возможно, и "NO" - не бывать такому."
(описание задачи взято с сайта www.coursera.org/learn/python-osnovy-programmirovaniya/programming/)
Решение
x = int(input())
y = int(input())
k = y - x + 1
if (x - 1) % k == 0:
....print('YES')
else:
....print('NO')
Цвет клеток шахматной доски.
"Заданы координаты двух клеток шахматной доски. Выведите "YES" в случае, если они покрашены в один цвет, а иначе - "NO"."
(описание задачи взято с сайта www.coursera.org/learn/python-osnovy-programmirovaniya/programming/)
Решение
x1 = int(input())
y1 = int(input())
x2 = int(input())
y2 = int(input())
if x1 == x2 and y1 == y2:
....print('YES')
elif ((x1 - x2) % 2 == 0) and ((y1 - y2) % 2 == 0):
....print('YES')
elif ((x1 - x2) % 2 != 0) and ((y1 - y2) % 2 != 0):
....print('YES')
else:
....print('NO')
Шоколадка.
"Есть плитка шоколада, которая имеет вид прямоугольника, разделенного на n×m долек. Один раз плитку возможно разломить по прямой на две части. Выясните, можно ли так отломить от шоколадки часть, состоящую из k долек.
"YES" - можно, "NO" - не получится."
(описание задачи взято с сайта www.coursera.org/learn/python-osnovy-programmirovaniya/programming/)
Решение
n = int(input())
m = int(input())
k = int(input())
if k < m * n and (k % m == 0 or k % n == 0):
....print('YES')
else:
....print('NO')
Коровы.
"Закончите фразу “На лугу пасется...” одним из возможных вариантов продолжений: “n коров”, “n корова”, “n коровы”, склоняя слово “корова” правильно. Задано число n<=100."
(описание задачи взято с сайта www.coursera.org/learn/python-osnovy-programmirovaniya/programming/)
Решение
n = int(input())
if (n >= 11 and n <= 14):
....s = 'korov'
elif n % 10 == 1:
....s = 'korova'
elif n % 10 >= 2 and n % 10 <= 4:
....s = 'korovy'
else:
....s = 'korov'
print(n, s)