Наивные - загадываем число. Прибавляем к нему 7. Отнимаем загаданное число. x + 7 - x = 7 - загадываем число. Умножаем его на 7. Делим на загаданное число (не сработает для нуля) x * 7 / x = 7
Можно немного это замаскировать: - загадываем число. Умножаем его на 15873. Прибавляем 111111. Делим на 15873. отнимаем загаданное число. (15873x + 111111)/15873 - x = 7
Можно использовать какой-нибудь фокус, например, складывание сумм цифр до тех пор, пока не получится одно число (т.н. "числовой корень", пример: 255 -> 2 + 5 + 5 = 12 -> 1 + 2 = 3) - загадываем натуральное число. Умножаем на 9, находим числовой корень. Отнимаем 2. Разгадка в том, что числовой корень любого числа, делящегося на 9 и не равного нулю, равен 9.
Маскировка: - загадываем натуральное число. Умножаем на 777 и находим числовой корень. Потом на 666 и находим числовой корень. Прибавляем к результату 666. Находим сумму кубов цифр результата. И еще раз. Смотрим на число сотен результата. 666 делится на 9, так что числовой корень числа (666 * что-то) равен 9. 666 + 9 = 675. 6^3 + 7^3 +5^3 = 684. 6^3 + 8^3 + 4^3 = 792
var a: array [1..n, 1..n] of integer; i, j, min: integer;
begin Randomize; Writeln('*** Исходная матрица ***'); for i := 1 to n do begin for j := 1 to n do begin a[i, j] := Random(101) - 50; Write(a[i, j]:4) end; Writeln end; { Собственно, замена } for i := 1 to n do begin min := 32767; for j := 1 to n do if min > a[i, j] then min := a[i, j]; a[i, n - i + 1] := min end; { Результат } Writeln('*** Результирующая матрица ***'); for i := 1 to n do begin for j := 1 to n do Write(a[i, j]:4); Writeln end end.
- загадываем число. Прибавляем к нему 7. Отнимаем загаданное число.
x + 7 - x = 7
- загадываем число. Умножаем его на 7. Делим на загаданное число (не сработает для нуля)
x * 7 / x = 7
Можно немного это замаскировать:
- загадываем число. Умножаем его на 15873. Прибавляем 111111. Делим на 15873. отнимаем загаданное число.
(15873x + 111111)/15873 - x = 7
Можно использовать какой-нибудь фокус, например, складывание сумм цифр до тех пор, пока не получится одно число (т.н. "числовой корень", пример: 255 -> 2 + 5 + 5 = 12 -> 1 + 2 = 3)
- загадываем натуральное число. Умножаем на 9, находим числовой корень. Отнимаем 2.
Разгадка в том, что числовой корень любого числа, делящегося на 9 и не равного нулю, равен 9.
Маскировка:
- загадываем натуральное число. Умножаем на 777 и находим числовой корень. Потом на 666 и находим числовой корень. Прибавляем к результату 666. Находим сумму кубов цифр результата. И еще раз. Смотрим на число сотен результата.
666 делится на 9, так что числовой корень числа (666 * что-то) равен 9. 666 + 9 = 675. 6^3 + 7^3 +5^3 = 684. 6^3 + 8^3 + 4^3 = 792
n = 10;
var
a: array [1..n, 1..n] of integer;
i, j, min: integer;
begin
Randomize;
Writeln('*** Исходная матрица ***');
for i := 1 to n do
begin
for j := 1 to n do
begin a[i, j] := Random(101) - 50; Write(a[i, j]:4) end;
Writeln
end;
{ Собственно, замена }
for i := 1 to n do
begin
min := 32767;
for j := 1 to n do
if min > a[i, j] then min := a[i, j];
a[i, n - i + 1] := min
end;
{ Результат }
Writeln('*** Результирующая матрица ***');
for i := 1 to n do
begin
for j := 1 to n do Write(a[i, j]:4);
Writeln
end
end.
Тестовое решение:
*** Исходная матрица ***
40 7 17 -35 21 2 28 9 6 22
-18 -10 -26 -21 12 2 -40 7 32 -25
-40 -34 -40 16 15 -37 -36 40 7 -3
50 -15 -11 43 -49 -48 -46 -10 48 -31
-26 3 25 38 -39 14 9 -20 46 7
-29 -14 -15 -50 39 23 -4 -49 1 7
-13 39 -49 -42 22 47 -49 -19 -23 10
-2 21 9 12 -49 8 -8 -27 5 -50
5 35 44 -50 -25 14 -50 -12 -46 -21
7 -47 40 -9 33 -15 1 17 -35 -36
*** Результирующая матрица ***
40 7 17 -35 21 2 28 9 6 -35
-18 -10 -26 -21 12 2 -40 7 -40 -25
-40 -34 -40 16 15 -37 -36 -40 7 -3
50 -15 -11 43 -49 -48 -49 -10 48 -31
-26 3 25 38 -39 -39 9 -20 46 7
-29 -14 -15 -50 -50 23 -4 -49 1 7
-13 39 -49 -49 22 47 -49 -19 -23 10
-2 21 -50 12 -49 8 -8 -27 5 -50
5 -50 44 -50 -25 14 -50 -12 -46 -21
-47 -47 40 -9 33 -15 1 17 -35 -36