Начало аналогично предыдущим случаям

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

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: