using System;
namespace ConcoleApplication
{
class Program
{
enum CardinalPoints //Стороны света
{
North,
West,
South,
East
}
public static int Convert(int a)//Перевод команды(сделал для удобства)
{
if (a == -1)
return 3;
if (a == 1)
return 1;
return 2;
}
public static void Main()
{
var n1 = int.Parse(Console.ReadLine());
var n2 = int.Parse(Console.ReadLine());
n1 = Convert(n1);
n2 = Convert(n2);
var point = (n1 + n2) % 4;
switch ((CardinalPoints) point)//Вывод ответа
{
case CardinalPoints.East:
Console.WriteLine("Восток");
break;
case CardinalPoints.South:
Console.WriteLine("Юг");
break;
case CardinalPoints.West:
Console.WriteLine("Запад");
break;
case CardinalPoints.North:
Console.WriteLine("Север");
break;
}
}
}
}
Объяснение:
Советую потестировать. Если что исправлю, самому просто лень было тестировать)
ответ: FIRSTTHINGSFIRST
Примечание: "шаг X" означает таблицу на рисунке, которая совпадает с номером X.
1. Рисуем квадрат 4x4 и заполняем известными значениями (шаг 1).
2. Видим, что в диагонали отсутствует одно число. Но мы знаем, что сумма чисел в диагонали магического квадрата равна константе, которая вычисляется по формуле:
Подставляем в формулу известные значения:
Теперь вычитаем известные значения в диагонали: 34 - 13 - 11 - 4 = 6.
Подставляем в пустую клетку это значение (шаг 2).
3. Так же есть свойство магического квадрата 4x4: квадраты 2x2 на углах квадрата 4x4 тоже "равны" константе. Нам известен левый нижний угол. Если сложить все числа, получится 34. В правом верхнем квадрате нам не известно одно число. Вычитаем известные значения из константы: 34 -2 -13 - 11 = 8. Подставляем в пустую клетку значение 8 (шаг 3).
4. Шаг 4.
В условии сказано, что это нормальный магический квадрат, то есть в нем должны быть числа от 1 до 16. Выпишем справа числа, которых еще нет в магическом квадрате. Также над каждой колонкой и рядом с каждой строкой запишем количество, которого не хватает до 34-х.
Видим две колонки, которым не хватает 21-го. 21 из имеющихся чисел можно получить добавив либо 16 + 5, либо 14 + 7. Записываем о одну колонку 16 и 5, а в другую 14 и 7. Как мы видим, по столбцам все правильно, так как над ними написан 0. А вот по строкам не сходится. К первой строке и ко второй надо добавить те числа, которые у нас есть в наборе, но вот 5 и 8 уже есть в квадрате, значит что-то мы сделали неправильно (шаг 5).
5. Тогда попробуем поменять местами в 3-ей колонке 14 и 7 (шаг 6). Теперь мы видим, что можем поставить в каждую строку недостающее значение из оставшихся чисел (шаг 7). Получился магический квадрат для расшифровки.
6. Подставляем оставшиеся числа из списка. И проверяем, расшифровывая сообщение. После расшифровки получится фраза FIRSTTHINGSFIRST. Эта фраза осмысленная, потому что если добавить пробелы, получится выражение FIRST THINGS FIRST.
Поделитесь своими знаниями, ответьте на вопрос:
Составить программу вычисления максимального и минимального элемента линейного массива состоящего из 14 случайных чисел, принадлежащих диапазону (0; 90]
Const
N = 14;
Var
A:Array[1..N] of integer;
i,Max,Min:integer;
Begin
Randomize;
Write('Исходный массив:');
For i:= 1 to N do
Begin
A[i]:=random(90)+1;
Write(' ',A[i]);
End;
WriteLn;
Max:=1;
Min:=1;
For i:= 2 to N do
Begin
if A[i]>A[Max] then Max:=i;
if A[i]<A[Min] then Min:=i;
End;
WriteLn('Max(A) = A[',Max,'] = ',A[Max]);
WriteLn('Min(A) = A[',Min,'] = ',A[Min])
End.
Пример:
Исходный массив: 66 70 88 36 30 11 53 1 57 77 6 40 65 46
Max(A) = A[3] = 88
Min(A) = A[8] = 1