k=14
начальное значение i:= 1
f:= 2n2 + 5
f(i) < k
2i2 + 5 >= 14
2i2 + 5 >= 14
i2 >= 4,5
i >= 2,…
i = 3
Далее проверяем условие if f(i)-k <= k-f(i-1)
f(3)-14 <= 14-f(2)
2*32 + 5 -14 <= 14-(2*22 + 5)
9 <= 1
Условие неверно, значит, напечатается writeln(i-1). Т.е 2
Это только решение задачи при входном значении k=14
Далее проводим анализ, когда еще в задаче может получиться ответ 2
Это произойдет в двух случаях
1.Когда в алгоритме получаем 3, но условие if f(i)-k <= k-f(i-1)неверное
2.Когда в алгоритме получаем 2 и условие if f(i)-k <= k-f(i-1)верное
1. Условие неверно (i=3) f(i)-k > k-f(i-1) f(3)-k > k-f(2) 2*32 + 5 – k > k- (2*22 + 5) 23 – k > k – 13 - 2 k > - 36 K < 18 | 2. Условие верно(i=2) f(i)-k <= k-f(i-1) f(2)-k <= k-f(1) 2*22 + 5 – k <= k- (2*12 + 5) 13 – k <= k - 7 K >= 10 |
[10; 17] 17-10+1= 8
69) Напишите в ответе число, равное количеству различных значений входной переменной k, при которых приведённая ниже программа выводит тот же ответ, что и при входном значении k=9. Значение k=9 также включается в подсчёт различных значений k.
var k, i: longint;
function f(n: longint): longint;
Begin
f:= n*n*n + 2*n;
|
|
end;
Begin
readln(k);
i:= 1;
while f(i) < k do
i:= i+1;
if f(i)-k <= k-f(i-1) then
writeln(i)
else writeln(i-1);
End.
70) Напишите в ответе число, равное количеству различных значений входной переменной k, при которых приведённая ниже программа выводит тот же ответ, что и при входном значении k=17. Значение k=17 также включается в подсчёт различных значений k.
var k, i: longint;
function f(n: longint): longint;
Begin
f:= n*n*n + 5*n*n;
end;
Begin
readln(k);
i:= 1;
while f(i) < k do
i:= i+1;
if f(i)-k <= k-2*f(i-1) then
writeln(i)
else writeln(i-1);
End.
71) Напишите в ответе число, равное количеству различных значений входной переменной k, при которых приведённая ниже программа выводит тот же ответ, что и при входном значении k=13. Значение k=13 также включается в подсчёт различных значений k.
var k, i: longint;
function f(n: longint): longint;
Begin
f:= n*n*n - 5*n;
end;
Begin
readln(k);
i:= 1;
while f(i) < k do
i:= i+1;
if 2*f(i)-k <= k-f(i-1) then
writeln(i)
else writeln(i-1);
End.
72) Напишите в ответе число, равное количеству различных значений входной переменной k, при которых приведённая ниже программа выводит тот же ответ, что и при входном значении k=12. Значение k=12 также включается в подсчёт различных значений k.
var k, i: longint;
function f(n: longint): longint;
Begin
f:= 3*n*n - 2*n;
end;
Begin
readln(k);
i:= 1;
while f(i) < k do
i:= i+1;
if f(i)-k <= f(i-1) then
writeln(i)
else writeln(i-1);
End.
Ответы
68 | 8 |
69 | 15 |
70 | 17 |
71 | 34 |
72 | 6 |