Для начала смотрим что выходит при К= 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;
for K := 0 to 100 do
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.
Вывод
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
#include <stdio.h>
int main()
{
unsigned n;
/* организовать ввод квадратной матрицы размера nxn из целых чисел; */
printf("Enter matrix dimension: ");
scanf("%u", &n);
int matrix[n][n];
for (unsigned i = 0; i < n; i++)
for (unsigned j = 0; j < n; j++)
if (i == j)
matrix[i][i] = i + 1;
}
else
matrix[i][j] = 0;
printf("%d ", matrix[i][j]);
printf("\n");
Для начала смотрим что выходит при К= 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
#include <stdio.h>
int main()
{
unsigned n;
/* организовать ввод квадратной матрицы размера nxn из целых чисел; */
printf("Enter matrix dimension: ");
scanf("%u", &n);
int matrix[n][n];
for (unsigned i = 0; i < n; i++)
{
for (unsigned j = 0; j < n; j++)
{
if (i == j)
{
matrix[i][i] = i + 1;
}
else
{
matrix[i][j] = 0;
}
}
}
for (unsigned i = 0; i < n; i++)
{
for (unsigned j = 0; j < n; j++)
{
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}