Форум » Циклы и ветвления » Новое задание 21 (Демо-2016) » Ответить

Новое задание 21 (Демо-2016)

Поляков: ELE пишет: [quote] Нельзя ли доходчиво ( как Вы умеете) объяснить почему ответ 3? У меня - 2 var k, i : longint; function f(n: longint): longint; begin f := n * n * n; end; function g(n: longint): longint; begin g := 2*n + 3; end; begin readln(k); i := 1; while f(i) < g(k) do i := i+1; writeln(I) т.к. при i=2 f(i) =8 g(i) =9 условие выполняется while f(i) < g(k) тогда i := i+1 Но при i=3 условие не выполняется [/quote] Давайте посмотрим, когда остановится цикл - тогда, когда выполняется условие g(k) <= f(i). При этом цикл не должен остановиться при предыдущем значении i, так что f(i-1) < g(k). Объединив эти неравенства, получаем [pre2]f(i-1) < g(k) <= f(i)[/pre2] Теперь подставляем сюда функции: f(i) = n3, g(k) = 2k+3: [pre2](i-1)3 < 2k+3 <= i3[/pre2]При k = 10 получаем [pre2](i-1)3 < 23 <= i3[/pre2]далее подбором можно найти, что при k = 10 мы получим i = 3. Подставляем i = 3 в исходное неравенство: [pre2](i-1)3 = 8 < 2k+3 <= i3 = 27[/pre2]откуда [pre2] 5 < 2k <= 24[/pre2] или [pre2] 2,5 < k <= 12[/pre2]. Для целых чисел имеем [pre2] 3 <= k <= 12[/pre2].

Ответов - 2

ELE:

teacher1311: 1. f(i) = i^3, g(k) = 2k+3. Остановка, когда будет равество или больше. 2. Ищем i. Подставим к=10. Получим i^3=23. Вывод i=3 (i=2 даст 8, это мало) 3. Итак, цикл выполняется 3 раза. Значит, в конце будет f(3)=9. 4. Подбираем значение k, которое даст g=9 или больше. 2*k+3=9 5. Ответ: k=3



полная версия страницы