Dato24043846
?>

Решить на языке питон " шахматный ферзь ходит по диагонали, горизонтали или вертикали. даны две различные клетки шахматной доски, определите, может ли ферзь попасть с первой клетки на вторую одним ходом. программа получает на вход четыре числа от 1 до 8 каждое, номер столбца и номер строки сначала для первой клетки, потом для второй клетки. программа должна вывести yes, если из первой клетки ходом ферзя можно попасть во вторую или no в противном случае.

Информатика

Ответы

saveskul84

проверить, что две клетки стоят в одной строке или в одно строке, просто: надо проверить, что равны соответствующие иксы или игреки. немного сложнее проверить, что две клетки стоят на одной диагонали. так будет, если |x1 - x2| = |y1 - y2|.

код:

# python 3 x1, y1 = map(int, x2, y2 = map(int, in_one_row = x1 == x2 in_one_col = y1 == y2 in_one_diag = x1 - x2 == y1 - y2 or x1 - x2 == y2 - y1 if in_one_row or in_one_col or in_one_diag:     print("yes") else:     print("no")
pozhidaevgv

ответ:

#include

using namespace std;

void main()

{

setlocale(0, "");

int n;

cin > > n;

int a[n], k;

cin > > k;

for (int i = 0; i < k; i++)

{

  cin > > a[i];

  a[i] *= -1;

  cout < < a[i];

}

for (int i = 0; i < n; i++)

{

  cin > > a[i];

  cout < < a[i];

}

cin.get(); cin.get();

}

объяснение:

для начала ты вводишь переменную k, т.е. кол-во первых элементов, далее переменную n, т.е. оставшиеся цифры. все значения k, тебе нужно умножить на -1 и вывести, далее ты вводишь остальные значения. к примеру: у тебя есть массив из 20 числе, ты вводишь число 20. далее вводишь число первых элементов, т.е. k и именно k раз ты будешь вводить, дальше у тебя выведет значения и перекинет заполнять простой массив. если что-то не понятно - спрашивай, отвечу по возможности

omraleva
Чтобы сравнить эти два числа, нужно их рпедставить в одной системе счисления. удобней всего сделать это в двоичной. переведем dd в двоичную систему. пишем раскладку степеней двойки: 1 2 4 8 (16 не берем, т.к. в 16-ричной с.с. нет числа 16) берем первую цифру числа dd - d. по сути, d-это 13 число в 16-ричной с.с. (более подробно 16-ричная с.с - это 1,2,3,4,5,6,7,8,9,a(10),b(11),c(12),d(13),e(14),f(15)); смотрим, как число 13 можно разложить по числам 1,2,4,8(см раскладку степеней двойки). 8 влезает в 13 один раз, ставим 1. остаток 13-8=5. 4 влезает 5 один раз, ставим 1. остаток 5-4=1. 2 не влезает в 1, ставим 0. и на 1 ставим 1. т.е. первая четверка двочного числа равна 1101. теперь разбираем вторую цифру 16-ричного числа d. выше было рассказано, как это сделать. итого, получаем, что dd в 16с.с = 11011101 в двоичной. теперь пеерводим 337 из восьмеричной в двоичную пишем раскладку степеней двойка 1 2 4 (8 не берем, т.к в восьмеричной с.с нет числа 8)ж берем первую цифру числа 337 - это 3. раскладываем по степеням двойки и получаем, что первая двоичная тройка этого числа равна 011 (4 в 3 не влезает, 2 влезает один раз, остаток-один). со второй тройкой аналогично - получаем 011. теперь 7: 111 (4 влезает 1 раз, остаток-3, двойка в 3 влезает 1 раз, остаток-1, и последняя единица) итого получаем 337 в восьмеричной с.с. = 011011111, но 0 в начале числа не пишут, поэтому получаем 11011111 выписываем полученные двоичные числа dd=  11011101 337=11011111 по условию нам нужно найти число, которое стоит между этими. для себя я делаю так, все 1 заменяю на 9, а 0 - на 8, мне так проще. получается, что dd=99899989 337=99899999 очевидно, что между ними стоит число 99899990 или, переводя обратно, 11011110 - вот и ответ

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Решить на языке питон " шахматный ферзь ходит по диагонали, горизонтали или вертикали. даны две различные клетки шахматной доски, определите, может ли ферзь попасть с первой клетки на вторую одним ходом. программа получает на вход четыре числа от 1 до 8 каждое, номер столбца и номер строки сначала для первой клетки, потом для второй клетки. программа должна вывести yes, если из первой клетки ходом ферзя можно попасть во вторую или no в противном случае.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Gstoremsk62
KrisTinka
voropayelena26
tanu0618
Tarakanova_pavel
Yekaterina358
hrim5736
Tatyana_Minullina
pechyclava
Иванович
Захаров-Иванович
Анатольевна
nekarpova
yanermarina87
sv-opt0076