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

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

---------------------------------------------- |Python             |C++                      | |-------------------|-------------------------| |def f(x) :         |#include <  iostream  >   | |   returnx ∗ x     |usingnamespacestd;       | |i = 0              |intf (intx ){              | |k =  int (input ())   |  returnx ∗ x;           | |while (f(i) < k) : |}                        | |                   |                         | |   i+  = 1          |intmain  (){               | |print(i)           |  intk;                  | |                   |  inti = 0;              | |                   |  cin > > k;             | |                   |  while(f(i) < k)        | |                   |                         | |                   |    i + +;               | |                   |  cout <<  i;             | |                   |  return0;               | |                   |}                        | ----------------------------------------------

Посмотрим, что делает программа. Функция f(x )  считает квадрат переданного ей целого числа. У нас есть переменная i,  изначально равная 0. В цикле мы передаем i  в функцию, т.е. считаем квадрат числа, хранящегося в переменной. Если этот квадрат меньше какого-то введенного числа k,  условие цикла выполнено — и переменную i  мы увеличиваем на единицу, то есть переходим к следующему целому числу. Так мы делаем до тех пор, пока квадрат числа i  не сравняется с числом k  или не превысит его. Что в итоге будет храниться в переменной i?  Последнее число, квадрат которого не превысит или не сравняется с числом k,  причем увеличенное на один: когда мы находим такое последнее число, мы заходим в цикл, т.к. условие выполнено, и добавляем к i  единицу.

Что выведет программа при k =  14?  Теперь мы знаем, как работает программа: ищем последнее число, квадрат которого меньше k = 14, увеличенное на один. Это число 4 — 3 ⋅ 3 = 9  , а уже 4 ⋅ 4 = 16  — не подходит. Т.к. число увеличено на 1, получаем i = 4.  Теперь вручную прогоним программу и посмотрим, действительно ли это так:

Возьмем i = 0 : 0 ⋅ 0 = 0  — подходит, теперь i = 1  .

i = 1 : 1 ⋅ 1  — подходит, теперь i = 2  .

i = 2 : 2 ⋅ 2  — подходит, теперь i = 3  .

i = 3 : 3 ⋅ 3 = 9  — подходит, теперь i = 4  .

i = 4 : 4 ⋅ 4 = 16  — не подходит, выходим из цикла.

Наша задача — найти все числа такие, что 3 — последнее число, квадрат которого меньше k.

k = 9  не подходит: тогда числа сравняются, а нам нужно строгое неравенство. Значит, и меньшие числа нам не подходят: для них последнее число, квадрат которого меньше k,  будет меньше 3.

k = 10  подходит: 3 ⋅ 3 = 9 < 10  и 4 ⋅ 4 = 16 > 10.  » class=»math» width=»auto»> </p>
<p class= k = 11  подходит: 3 ⋅ 3 = 9 < 11  и > 4 ⋅ 4 = 16 > 11.  » class=»math» width=»auto»> </p>
<p class= k = 12  подходит: 3 ⋅ 3 = 9 < 12  и > 4 ⋅ 4 = 16 > 12.  » class=»math» width=»auto»> </p>
<p class= k = 13  подходит: 3 ⋅ 3 = 9 < 13  и > 4 ⋅ 4 = 16 > 13.  » class=»math» width=»auto»> </p>
<p class= k = 14  подходит: 3 ⋅ 3 = 9 < 14  и > 4 ⋅ 4 = 16 > 14.  » class=»math» width=»auto»> </p>
<p class= k = 15  подходит: 3 ⋅ 3 = 9 < 15  и > 4 ⋅ 4 = 16 > 15.  » class=»math» width=»auto»> </p>
<p class= k = 16  подходит: 3 ⋅ 3 = 9 < 15,  а для i = 4 : 16 < 16  не выполнено, значит, i = 3  — последний подходящий квадрат.

k = 17  не подходит: 3 не будет последним квадратом, меньшим k,  им будет 4. Значит, и дальше значения проверять не имеет смысла, они будут возрастать и для всех последний квадрат будет не меньше 4.

Таким образом, нам подошли 7 значений k :  10, 11, 12, 13, 14, 15, 16. Это и есть наш ответ: 7.

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