Во вложении показана принятая условная схема нумерации полей.
Предполагается, что если ферзь стоит на клетке с координатами (3,4), он может пойти по горизонтали, вертикали или диагонали. Соответствующие направления выделены цветом.
Чтобы взять фигуру (или пешку) противника по горизонтали, у обоих фигур должны быть одинаковы координаты строки (первые в паре).
Чтобы взять фигуру противника по вертикали, у обоих фигур должны быть одинаковы координаты столбца (вторые в паре в паре).
Наконец, чтобы взять фигуру противника по диагонали, у обоих фигур должна быть одинакова абсолютная величина разницы как между строками, так и между колонками.
Последнее правило взятия сложное, поэтому запишем его в условных обозначениях. Пусть Rq и Cq - соответственно номера строки и столбца, пересечение которых указывает положение клетки с ферзем. Пусть также фигура противника находится на клетке, заданной координатами Rx и Cx.
Тогда последнее правило можно записать в виде |Rq-Rx| = |Cq-Cx|
Теперь можно записать логическое выражение, значение которого истинно, если ферзь может взять фигуру (или пешку) противника.
(Rq=Rx) ∨ (Cq=Cx) ∨ (|Rq-Rx| = |Cq-Cx|)
<em>// PascalABC.NET 3.3, сборка 1625 от 17.01.2018</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var (Rq,Cq):=ReadInteger2('Введите номера горизонтали и вертикали ферзя:');
var (Rx,Cx):=ReadInteger2('Введите номера горизонтали и вертикали фигуры:');
if (Rq=Rx) or (Cq=Cx) or (Abs(Rq-Rx)=Abs(Cq-Cx)) then Writeln('Yes')
else Writeln('No')
end.
<u>Пример</u>
Введите номера горизонтали и вертикали ферзя: 3 4
Введите номера горизонтали и вертикали фигуры: 6 1
Yes
4, там через тире написано
истинность это верный/неверный?если так то верный
// F#
[<EntryPoint>]
let main argv =
let getArray =
let rand = new System.Random();
[1..4] |> Seq.map (fun x -> rand.Next 10)
let A = getArray;
let B = getArray;
let C = A |> Seq.mapi (fun i a -> a * a - (B |> Seq.nth i))
printf "%s" (Seq.fold (fun sum x -> sprintf "%s %d" sum x) "" C)
System.Console.ReadKey true |> ignore
0
Логика такая:
1) Число 157 - это суммы 15 и 7 в порядке убывания, т.к. 1 и 57 не подойдут в виду условий задачи.
2) Пусть наименьшее число abc, тогда желательно b+c = 15, а a+b = 7.
Подберем: чтобы цифра b в нашем числе было наименьшей, цифра c должна взять на себя наибольшее значение -> 9. Тогда b = 6.
Итого: a69.
a будет 1, т.к. 1+6 = 7.
Таким числом является 169.
Проверим: 1+6 = 7. 6+9 = 15. В порядке убывания получается 157.