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

0 голосов
114 просмотров

Напишите в ответе наименьшее значение входной переменной 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<br> i := i+1;
writeln(i)
end.


Информатика (15 баллов) | 114 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Рассмотрим, что делают функции.
f(n)=n³; g(n)=n²
В основной программе имеется цикл с предусловием, который выполняется до тех пор, пока записанное после while логическое выражение (в данном случает отношение) истинно. Делаем подстановку.
f(i) ≤ k × g(i); i³ ≤ k × i² ⇒i ≤ k
Первоначально i=1, а в цикле i наращивается на 1. Поскольку цикл прекратит выполнение при i > k, то для i=21 получаем k=20.

(142k баллов)
0 голосов

Функция f преобразует число n в куб числа n
функция g преобразует число n в квадрат числа n
рассмотрим цикл:
к переменной i будет прибавляться 1, только если i^3 <= k * i^2, то есть<br>цикл действует только в случае, когда k >= i
выйти из цикла мы должны со значением i = 21
это может быть в одном случае:
k = 20, i = 20, тогда выполним цикл и снова в него не войдем, поскольку 21^3 > 20 * 21^2
Ответ: k = 20

(782 баллов)