Задания №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.
Решение