Форум » Циклы и ветвления » 21-69 » Ответить

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. Где ошибка? Заранее спасибо!

Ответов - 3

Поляков: ПавелС пишет: Второй интервал [23;33] дающий нам 11 вариантов k. Это неверно. Наберите программу и проверьте.

ПавелС: Сообразил, спасибо. Второй интервал должен исходить из "перевернутого" неравенства (о чем я забыл). Тогда второй интервал [13; 22], что и дает искомые 10 вариантов и в сумме 15. Спасибо!

Поляков: ПавелС пишет: Сообразил, спасибо.




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