Для начала смотрим что выходит при К= 36, выходит 5
Анализируем функцию F. Это линейная функция наподобии Фибоначи, значит ответом будет некий один отрезок из К
Потом немножко дорабатываем программу и смотрим на результат
var
i, K, counter: integer;
function F(x: integer): integer;
begin
if x < 2 then
F := 1
else F := F(x - 1) + 2 * F(x - 2);
end;
begin
for K := 0 to 100 do
begin
i := 28;
// readln(K);
while (i > 0) and (F(i) > K) do
i := i - 1;
if i = 5 then begin
counter := counter + 1;
writeln(counter, ') K = ', K);
end;
end
end.
Вывод
1) K = 21
2) K = 22
3) K = 23
4) K = 24
5) K = 25
6) K = 26
7) K = 27
8) K = 28
9) K = 29
10) K = 30
11) K = 31
12) K = 32
13) K = 33
14) K = 34
15) K = 35
16) K = 36
17) K = 37
18) K = 38
19) K = 39
20) K = 40
21) K = 41
22) K = 42
ответ 22
n = 10;
var
a: array[1..n, 1..n] of integer;
i, j: 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 a[i,i]:=0;
Writeln('Результирующая матрица');
for i := 1 to n do
begin
for j := 1 to n do Write(a[i, j]:4);
Writeln
end
end.
Тестовое решение:
Исходная матрица
-19 15 42 44 32 41 -11 -21 14 -29
33 -8 -21 -33 -38 28 21 43 39 -46
-1 33 13 23 -38 32 -25 -26 43 41
7 6 39 14 48 37 -3 -3 -2 -41
-26 40 -38 -24 16 43 -17 3 7 7
37 20 17 44 28 -2 -49 -32 32 -50
16 -35 -14 23 14 -23 3 15 -31 -24
-19 -26 -5 30 30 9 20 -13 -43 -30
-2 22 17 -15 -46 38 39 46 37 -1
36 -22 15 -2 -7 -41 3 -10 12 -12
Результирующая матрица
0 15 42 44 32 41 -11 -21 14 -29
33 0 -21 -33 -38 28 21 43 39 -46
-1 33 0 23 -38 32 -25 -26 43 41
7 6 39 0 48 37 -3 -3 -2 -41
-26 40 -38 -24 0 43 -17 3 7 7
37 20 17 44 28 0 -49 -32 32 -50
16 -35 -14 23 14 -23 0 15 -31 -24
-19 -26 -5 30 30 9 20 0 -43 -30
-2 22 17 -15 -46 38 39 46 0 -1
36 -22 15 -2 -7 -41 3 -10 12 0