Шешімі: Максимальное значение переменной k
Определите наибольшее значение входной переменной $k$, при котором программа выдаёт тот же ответ, что и при входном значении $k = 45$. В программе используются функции $F(n) = n^3$ и $G(n) = 2n + 3$. Сначала переменной $i$ присваивается значение 1, затем, пока выполняется условие $F(i) < G(k)$, значение $i$ увеличивается на 1. После завершения цикла программа выводит значение $i$.
1def F(n): 2 return n*n*n 3 4def G(n): 5 return 2*n + 3 6 7k = int(input()) 8i = 1 9while F(i) < G(k): 10 i += 1 11print(i)
Шешімін қадамдап көрсету
5 қадамПри $k = 45$ вычислим значение правой части условия цикла:
$$G(45) = 2 \cdot 45 + 3 = 93$$Проверяем последовательные значения функции $F(i) = i^3$. При $i = 4$ условие цикла ещё выполняется, а при $i = 5$ становится ложным:
$$4^3 = 64 < 93,\quad 5^3 = 125 \geq 93$$Следовательно, при $k = 45$ программа выводит $i = 5$. Чтобы программа выводила 5 и при других значениях $k$, необходимо:
$$4^3 < 2k + 3 \leq 5^3$$Решаем двойное неравенство:
$$64 < 2k + 3 \leq 125 \Rightarrow 31 \leq k \leq 61$$Наибольшее подходящее значение переменной $k$ равно 61.
Где здесь ошибаются
Считать, что цикл завершается при первом выполнении условия $F(i) < G(k)$, хотя он завершается, когда это условие становится ложным.
Использовать только неравенство $2k + 3 \leq 125$ и забыть проверить нижнюю границу для сохранения значения $i = 5$.