#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");
}
}
Поделитесь своими знаниями, ответьте на вопрос:
для начала смотрим что выходит при к= 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