Усложненный вариант этого задания

Задания №21 из Полякова

100)Определите наибольшее значение входной переменной k, при котором программа выдаёт ответ 7:

Var

k, i: longint;

function f(n: longint): longint;

Begin

f:= n*n + 2*n

end;

Begin

readln(k);

i:= 20;

while f(i) > k do i:= i-1;

writeln(i)

End.

Решение

F = n2 + 2n

i = 7

начальное значение i = 20

while f(i) > k do i:= i-1

Проверяем условие завершения цикла f(i) <= k

f(7) = 72 + 2*7 = 49 + 14 = 63

63 <= k или k >= 63, т.е  k = 63

НО таких значений k может быть несколько. Т.к значение i с каждым циклом уменьшается на 1, то значит

f(7) <= k

f(8) > k (f(8)= 82 + 2*8 = 64 + 16 = 80)

Решаем систему

k >= 63

k < 80

[63; 79]

Наибольшее k = 79

Ответ 79


101)Определите наибольшее значение входной переменной k, при котором программа выдаёт ответ 9:


Var

k, i: longint;

function f(n: longint): longint;

Begin

f:= n*n + 4*n

end;

Begin

readln(k);

i:= 20;

while f(i) > k do i:= i-1;

writeln(i)

End.

Ответ 139


76) Напишите в ответе наименьшее значение входной переменной k, при котором программа выдаёт тот же ответ, что и при входном значении k = 12.

var k, i: longint;

function f(n: longint): longint;


Begin

f:= n * n * n;

end;

function g(n: longint): longint;

Begin

g:= 3*n + 2;

end;

Begin

readln(k);

i:= 1;

while f(i) < g(k) do

i:= i+1;

writeln(i)

End.

Решение

f:= n3

g:= 3n + 2

входное значение k = 12

для условия f(i) < g(k) подставляем k = 12, заменяем его на обратное и находим i

i3 >= g(12)

i3 >= 38

Значит  i= 4

Составляем систему

f(4) >= g(k)

f(3) < g(k)

43 >= 3к + 2

33 < 3к + 2

К <= 62/3 = 20,…

К > 25/3 = 8,…

[9, 20]

Наименьшее значение 9

Ответ 9


77)           Напишите в ответе наибольшее значение входной переменной k, при котором программа выдаёт тот же ответ, что и при входном значении k = 16.

var k, i: longint;

function f(n: longint): longint;


Begin

f:= n * n * n;

end;

function g(n: longint): longint;

Begin

g:= 3*n + 3;

end;

Begin

readln(k);

i:= 1;

while f(i) < g(k) do

i:= i+1;

writeln(i)

End.

78)           Напишите в ответе наименьшее значение входной переменной k, при котором программа выдаёт тот же ответ, что и при входном значении k = 14.

var k, i: longint;

function f(n: longint): longint;

Begin

f:= n * n * n;

end;

function g(n: longint): longint;

Begin

g:= 5*n + 1;

end;

Begin

readln(k);

i:= 1;

while f(i) < g(k) do

i:= i+1;

writeln(i)

End.

79)           Напишите в ответе наибольшее значение входной переменной k, при котором программа выдаёт тот же ответ, что и при входном значении k = 30.

var k, i: longint;

function f(n: longint): longint;

Begin

f:= n * n * n;

end;

function g(n: longint): longint;

Begin

g:= 3*n + 6;

end;

Begin

readln(k);

i:= 1;

while f(i) < g(k) do

i:= i+1;

writeln(i)

End.

80)           Напишите в ответе наименьшее значение входной переменной k, при котором программа выдаёт тот же ответ, что и при входном значении k = 18.

var k, i: longint;

function f(n: longint): longint;

Begin

f:= n * n;

end;

function g(n: longint): longint;

Begin

g:= 2*n + 5;

end;

Begin

readln(k);

i:= 1;

while f(i) < g(k) do

i:= i+1;

writeln(i)

End.

81)           Напишите в ответе наибольшее значение входной переменной k, при котором программа выдаёт тот же ответ, что и при входном значении k = 45.

var k, i: longint;

function f(n: longint): longint;

Begin

f:= n * n;

end;

function g(n: longint): longint;

Begin

g:= 3*n + 2;

end;

Begin

readln(k);

i:= 1;

while f(i) < g(k) do

i:= i+1;

writeln(i)

End.

82) Напишите в ответе наименьшее значение входной переменной k, при котором программа выдаёт ответ 21.

var k, i: longint;

function f(n: longint): longint;

Begin

f:= n * n * n;

end;

function g(n: longint): longint;

Begin

g:= n*n;

end;

Begin

readln(k);

i:= 1;

while f(i) <= k*g(i) do

i:= i+1;

writeln(i)

End.

Ответы

76 9
77 20
78 13
79 39
80 16
81 47
82 20


Усложненный вариант этого задания

68) Напишите в ответе число, равное количеству различных значений входной переменной k, при которых приведённая ниже программа выводит тот же ответ, что и при входном значении k=14. Значение k=14 также включается в подсчёт различных значений k.

var k, i: longint;

function f(n: longint): longint;

Begin

f:= 2*n*n + 5;

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.

Решение


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



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