Автор | Сообщение |
|
| Администратор
|
Сообщение: 928
|
|
Отправлено: 15.09.15 09:19. Заголовок: Новое задание 21 (Демо-2016)
ELE пишет: цитата: | Нельзя ли доходчиво ( как Вы умеете) объяснить почему ответ 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 условие не выполняется |
|
Давайте посмотрим, когда остановится цикл - тогда, когда выполняется условие g(k) <= f(i). При этом цикл не должен остановиться при предыдущем значении i, так что f(i-1) < g(k). Объединив эти неравенства, получаем f(i-1) < g(k) <= f(i) Теперь подставляем сюда функции: f(i) = n 3, g(k) = 2k+3: (i-1)3 < 2k+3 <= i3 При k = 10 получаем (i-1)3 < 23 <= i3 далее подбором можно найти, что при k = 10 мы получим i = 3. Подставляем i = 3 в исходное неравенство: (i-1)3 = 8 < 2k+3 <= i3 = 27 откуда 5 < 2k <= 24 или 2,5 < k <= 12 . Для целых чисел имеем 3 <= k <= 12 .
|
|
|
Ответов - 2
[только новые]
|
|
|
Отправлено: 20.09.15 22:36. Заголовок: Спасибо!
|
|
|
|
Отправлено: 30.09.15 00:31. Заголовок: Посмотрите, может подойдет такое решение Демо2016 № 21
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
|
|
|
|