Шешімі: Количество значений переменной k
Рассмотрите программу, в которой функция $f(n)=n^3$. Программа получает целое число $k$, находит ближайшее к нему значение среди соседних кубов и выводит соответствующий индекс. Определите количество различных значений входной переменной $k$, при которых программа выводит тот же результат, что и при $k=12$. Значение $k=12$ также включается в подсчёт.
1def f(n): 2 return n * n * n 3 4i = 1 5k = int(input()) 6while f(i) < k: 7 i += 1 8if f(i) - k <= k - f(i - 1): 9 print(i) 10else: 11 print(i - 1)
Шешім по шагам
5 қадамПри $k=12$ цикл завершается на $i=3$, поскольку $2^3=8<12$, а $3^3=27\geq12$.
Сравним расстояния от $12$ до соседних кубов: до $27$ — $15$, до $8$ — $4$. Поэтому программа выводит индекс $2$.
Чтобы программа вывела $2$ при $i=2$, должно выполняться $1<k\leq8$ и условие выбора индекса $2$: $8-k\leq k-1$. Отсюда $k\geq4{,}5$, то есть подходят $k=5,6,7,8$ — всего $4$ значения.
Чтобы программа вывела $2$ при $i=3$, должно выполняться $8<k\leq27$ и условие выбора индекса $2$: $27-k>k-8$. Отсюда $k<17{,}5$, то есть подходят $k=9,10,11,12,13,14,15,16,17$ — всего $9$ значений.
Общее количество подходящих значений равно $4+9=13$.
Где здесь ошибаются
Не учитывают строгое неравенство при выборе индекса $i-1$.
Забывают включить значение $k=12$.
Считают только значения, при которых цикл завершается на $i=3$, и не рассматривают случай $i=2$.