Пожалуйста решит оч надо на python Условная инструкция Задача «Шахматная доска» Заданы две клетки шахматной доски. Если они покр
Пожалуйста решит оч надо на python Условная инструкция Задача «Шахматная доска» Заданы две клетки шахматной доски. Если они покрашены в один цвет, то выведите слово YES, а если в разные цвета — то NO. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки.
Наложим на шахматную доску систему прямоугольных координат так, чтобы в левом нижнем углу была клетка с координатами (1,1) - строка 1, колонка 1. Тогда в правом верхнем углу будет клетка с координатами (8,8) - строка 8, колонка 8. И вспомним, что шахматная доска кладется так, чтобы у игрока, играющего белыми, правое угловое поле было белого цвета. Тогда клетка (1,1) будет черного цвета, как и любая другая, у которой сумма координат четная. А если у клетки сумма координат нечетная, то она будет белого цвета. Собственно, цвет неважен, важно лишь то, что <u>одноцветными клетки будут тогда и только тогда, когда у них обоих сумма координат будет или четным числом, или нечетным.</u> Отсюда строим алгоритм: вводим координаты первой клетки (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 - логическая переменная): <em>если s1 четное, то</em> <em> b=значение истинности логического выражения (s2=четное)</em> <em>иначе</em> <em> b=значение истинности логического выражения (s2=нечетное) eсли b, то вывести "Yes" иначе вывести "No" </em> <em><u>Программа на языке Python 3.4:</u></em> 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")
<em><u>Тестовое решение:</u></em> 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 >>>
Переводим в 2-ную систему. Для этого делим всё время на 2 с остатком:
6 / 2 = 3 (остаток 0)
3 / 2 = 1 (остаток 1)
Выписываем последний результат деления (1) и все остатки, начиная с конца:
1 1 0
Таким образом:
Аналогично:
Умножаем: 110 х 100 = 11000 (тут действует такое же правило, что и для обычных десятичных чисел: чтобы умножить на 10, 100, 1000, 10000 и т.д., достаточно просто дописать справа столько нулей, сколько их есть в этом множителе).
Import math a = float(input()) b = float(input()) c = math.sqrt(a**2 + b**2) s = (a * b) / 2 print("Площадь треугольника: %.2f" % s) print("Гипотенуза треугольника: %.2f" % c)
042 Из первого кода правильно получается цифра 2 (так как 8 из 4 не правильно, а шесть есть и в 1, и во втором на одинаковых местах). Из второго цифра 4. И из третьего цифра 3.