Автор | Сообщение |
|
Отправлено: 22.03.16 14:37. Заголовок: 21-69
Суть задачи: Напишите в ответе число, равное количеству различных значений входной переменной k, при которых приведённая ниже программа выводит тот же ответ, что и при входном значении k=9. Значение k=9 также включается в подсчёт различных значений k. var k, i : longint; function f(n: longint) : longint; begin f := n*n*n + 2*n; end; begin readln(k); i := 1; while f(i) < k do i:= i+1; if f(i)-k <= k-f(i-1) then writeln(i) else writeln(i-1); end. Значения f(x): f(1) = 3 f(2) = 12 f(3) = 33 Здесь два доступных интервала, один для writeln(i) второй для writeln(i-1). Из k=9 искомый вывод 2, т.е. нас интересуют значения i 2 и 3. Первый интервал [8;12] дающий нам 5 вариантов k. Второй интервал [23;33] дающий нам 11 вариантов k. Т.е ответ д.б. 16, а не 15. Где ошибка? Заранее спасибо!
|
|
|
Новых ответов нет
[см. все]
|
|
|
| Администратор
|
Сообщение: 1045
|
|
Отправлено: 22.03.16 19:43. Заголовок: ПавелС пишет: Второй..
ПавелС пишет: цитата: | Второй интервал [23;33] дающий нам 11 вариантов k. |
|
Это неверно. Наберите программу и проверьте.
|
|
|
|
Отправлено: 22.03.16 21:38. Заголовок: Сообразил, спасибо. ..
Сообразил, спасибо. Второй интервал должен исходить из "перевернутого" неравенства (о чем я забыл). Тогда второй интервал [13; 22], что и дает искомые 10 вариантов и в сумме 15. Спасибо!
|
|
|
|
| Администратор
|
Сообщение: 1046
|
|
Отправлено: 22.03.16 21:47. Заголовок: ПавелС пишет: Сообра..
ПавелС пишет:
|
|
|
|