Наложим на шахматную доску систему прямоугольных координат так, чтобы в левом нижнем углу была клетка с координатами (1,1) - строка 1, колонка 1. Тогда в правом верхнем углу будет клетка с координатами (8,8) - строка 8, колонка 8. И вспомним, что шахматная доска кладется так, чтобы у игрока, играющего белыми, правое угловое поле было белого цвета. Тогда клетка (1,1) будет черного цвета, как и любая другая, у которой сумма координат четная. А если у клетки сумма координат нечетная, то она будет белого цвета. Собственно, цвет неважен, важно лишь то, что одноцветными клетки будут тогда и только тогда, когда у них обоих сумма координат будет или четным числом, или нечетным. Отсюда строим алгоритм: вводим координаты первой клетки (r1,c1) и второй клетки (r2,c2). Имена взяты от английских слов Row - строка и Column - колонка. Находим s1=r1+c1 и s2=r2+c2. Если s1 четное и s2 четное, или если s1 нечетное и s2 нечетное, выводим "Yes", в противном случае выводим "No". Четность s1 в языке Python можно проверить по условию s1%2==0 (остаток от целочисленного деления s1 на 2 равен 0). Однако такое условие получается очень громоздким и лучше воспользоваться возможностями логических выражений (b - логическая переменная): если s1 четное, то b=значение истинности логического выражения (s2=четное) иначе b=значение истинности логического выражения (s2=нечетное) eсли b, то вывести "Yes" иначе вывести "No"
Программа на языке Python 3.4: r1=int(input("Строка 1=")); c1=int(input("Колонка 1=")) r2=int(input("Строка 2=")); c2=int(input("Колонка 2=")) s1=r1+c1; s2=r2+c2 if s1%2==0: b=(s2%2==0) else: b=(s2%2!=0) if b: print("Yes") else: print("No")
Тестовое решение: Python 3.4.2 (v3.4.2:ab2c023a9432, Oct 6 2014, 22:15:05) [MSC v.1600 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information. >>> RESTART >>> Строка 1=7 Колонка 1=3 Строка 2=2 Колонка 2=2 Yes >>>
0,0(0 оценок)
Ответ:
05.04.2020 11:56
441(5) + 122(5)
1113(5)
Объяснение, как складывать числа в системе по основанию n (у нас n=5) Сложение производим "в столбик" в привычной нам десятичной системе счисления и начинаем с младших (правых) разрядов. 2+1=3. Если сумма меньше n (в данном случае меньше, т.к. 3<5), то записываем её "как есть" и переходим к следующему разряду. 4+2=6. Тут сумма больше n (6>5), поэтому вычитаем из этой суммы n (т.е. 5) и получаем 6-5=1. Эту единичку мы записываем, а за то, что вычли пятерку (т.е. n), пишем "один в уме", т.е. +1 переходит в следующий разряд. 4+1+1=6 (4+1 было, и еще +1 от переноса). Снова 6>5, как описано выше, снова 6-5=1, снова 1 пишем и +1 в следующий разряд. +1 и даст 1, поскольку складывать больше нечего. ответ: 1113
Отсюда строим алгоритм: вводим координаты первой клетки (r1,c1) и второй клетки (r2,c2). Имена взяты от английских слов Row - строка и Column - колонка. Находим s1=r1+c1 и s2=r2+c2. Если s1 четное и s2 четное, или если s1 нечетное и s2 нечетное, выводим "Yes", в противном случае выводим "No".
Четность s1 в языке Python можно проверить по условию s1%2==0 (остаток от целочисленного деления s1 на 2 равен 0).
Однако такое условие получается очень громоздким и лучше воспользоваться возможностями логических выражений (b - логическая переменная):
если s1 четное, то
b=значение истинности логического выражения (s2=четное)
иначе
b=значение истинности логического выражения (s2=нечетное)
eсли b, то
вывести "Yes"
иначе
вывести "No"
Программа на языке Python 3.4:
r1=int(input("Строка 1=")); c1=int(input("Колонка 1="))
r2=int(input("Строка 2=")); c2=int(input("Колонка 2="))
s1=r1+c1; s2=r2+c2
if s1%2==0:
b=(s2%2==0)
else:
b=(s2%2!=0)
if b:
print("Yes")
else:
print("No")
Тестовое решение:
Python 3.4.2 (v3.4.2:ab2c023a9432, Oct 6 2014, 22:15:05) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> RESTART
>>>
Строка 1=7
Колонка 1=3
Строка 2=2
Колонка 2=2
Yes
>>>
+ 122(5)
1113(5)
Объяснение, как складывать числа в системе по основанию n (у нас n=5)
Сложение производим "в столбик" в привычной нам десятичной системе счисления и начинаем с младших (правых) разрядов.
2+1=3. Если сумма меньше n (в данном случае меньше, т.к. 3<5), то записываем её "как есть" и переходим к следующему разряду.
4+2=6. Тут сумма больше n (6>5), поэтому вычитаем из этой суммы n (т.е. 5) и получаем 6-5=1. Эту единичку мы записываем, а за то, что вычли пятерку (т.е. n), пишем "один в уме", т.е. +1 переходит в следующий разряд.
4+1+1=6 (4+1 было, и еще +1 от переноса). Снова 6>5, как описано выше, снова 6-5=1, снова 1 пишем и +1 в следующий разряд.
+1 и даст 1, поскольку складывать больше нечего.
ответ: 1113