Задача к ЕГЭ по информатике на тему «простейшие программы с функциями» №4

Определите количество различных значений k,  при которых программа, приведённая ниже, выводит тот же ответ, что и при входном значении k = 27.  Значение k = 27  также включается в подсчёт различных значений k.

|-----------------------------|-------------------------------|- |Python-----------------------|C-+-+--------------------------|- |deff(n ) :                   |#include  < iostream  >        | |  returnn ∗ n ∗ n            |usingnamespacestd;             | |i = 1                        |intf(intn){                    | |k = int(input ())             |  returnn  ∗ n ∗ n;            | |                             |                               | |whilef(i) < k :              |}                              | |    i+ =  1                  |intmain (){{                   | |if f(i) − k <= k − f (i − 1) :|  intk,i = 1;                  | |  print(i)                   |  cin > > k;                   | |else :                        |  while (f(i) < k )            | |                             |                               | |  print(i − 1)               |    i+  = 1                    | |                             |  if(f (i) − k <=  k − f(i − 1))| |                             |    cout < < i;                | |                             |  else                         | |                             |                               | |                             |    cout < < i − 1;            | |                             |  return0;                     | -------------------------------}--------------------------------

Сначала вычислим, что выведет программа при k = 27.  Программа выведет 3: f(1) = 1  ≤ 27, f (2 ) = 8  ≤ 27, f(3) = 27  ≤ 27.

Посмотрим, как работает программа: она выводит 3, если или if f (i) − k  ≤ k  f(i − 1)  и   i  = 3, или if  f(i) − k > k  » class=»math» width=»auto»> — f<img decoding=— 1) — и i  — 1 = 3, то есть i  = 4.

Если i  = 3, условие цикла при i  = 3 неверно (иначе мы войдем в цикл и i  станет равно 4): f(3) = 27  ≥ k, то есть k ≤ 27, а при i  = 2 — верно: f (2 ) = 8 < k,  то есть k > 8.  » class=»math» width=»auto»> <img decoding= имеет вид 27 − k ≤ k − 8,  то есть k ≥  17.5.  Т.к. значения возможны только целые, получаем, что k ∈ [18;27].

Если i  = 4, аналогично f(4) ≥ k, f (3 ) < k,  то есть k ≤  64  и k > 27.  » class=»math» width=»auto»> Из <img decoding= то есть k ∈ (27;45].

В ответ идет объединение случаев, когда i  = 3 и когда i  = 4, то есть k ∈ [18;27 ] ∪ (27;45],  то есть k ∈ [18;45].  Всего целых k  здесь 45 − 18 + 1 = 28.

Ответ: 28
Оцените статью
Я решу все!