Подготовка к ЕГЭ и олимпиадам по информатике 2020 / Тренировочные варианты ЕГЭ

Профильная информатика:
подготовка к ЕГЭ и олимпиадам

Вариант № EGE_INF_1702

Добавлен 25 мая 2017 г. в 0:12. Изменён 9 июня 2018 г. в 20:09.Скачать PDF
1 2 3 4 5 6 7 8 9 10Р 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

Задание

Укажите количество значений входной переменной k, при которых программа напечатает тот же ответ, что и при k = 12.

  • Копировать
    function f(n : integer) : integer;
    begin
      if n > 0 then
        f := 2 * f(n - 1)
      else
        f := 1
    end;
    
    var
      k, i : integer;
    begin
      readln(k);
      i := 1;
      while f(i) < k * k do begin
        i := i + 1;
        k := k + 1
      end;
      writeln(i)
    end.
    
  • Копировать
    #include <stdio.h>
    
    int f(int n) {
      if (n > 0)
        return 2 * f(n - 1);
      else
        return 1;
    }
    
    void main() {
      int k, i = 1;
      scanf("%d", &k);
      while (f(i) < k * k) {
        i++;
        k++;
      }
      printf("%d", i);
    }
    
  • Копировать
    DIM K, I AS INTEGER
    INPUT K
    I = 1
    WHILE F(I) < K * K
      I = I + 1
      K = K + 1
    WEND
    PRINT I
    
    FUNCTION F(N)
      IF N > 0 THEN
        F = 2 * F(N - 1)
      ELSE
        F = 1
      END IF
    END FUNCTION
    
  • Копировать
    def f(n) :
      if n > 0 :
        return 2 * f(n - 1)
      else :
        return 1
    
    k = int(input())
    i = 1
    while f(i) < k * k :
      i += 1
      k += 1
    print(i)
    

Решение

Не сложно понять, что рекурсивная функция f(n) возводит число 2 в неотрицательную целую степень n, то есть \(f(n) = 2^n\).

После трассировки при k=12 определим, что программой выводится значение i=9. Далее, из условия окончания цикла, получим: \[\left\{ \begin{array}{c} f(8)<(k+7)^{2},\\ f(9)\geq(k+8)^{2},\\ k\in\mathbb{Z} \end{array}\right.\Leftrightarrow\left\{ \begin{array}{c} 256<(k+7)^{2},\\ 512\geq(k+8)^{2},\\ k\in\mathbb{Z} \end{array}\right.\] Решение системы в целых числах даёт значения k=-30,...,-24 и k=10,...,14, то есть всего 12 различных значений k.

Подробнее...

Ответ

12

Подробнее...