Задание EGEINF467C12: Выполнение и анализ программы

ФИПИ · ЕГЭ · все форматы ответа · 2475 заданий

Открыть решение ↓ Ошибка или пожелание

Тип задачи: Выполнение и анализ программы.

Учебные темы: Определение возможных результатов работы простейших алгоритмов управления исполнителями и вычислительных алгоритмов. Определение исходных данных, при которых алгоритм может дать требуемый результат.

Впишите правильный ответ.

 

Определите наибольшее значение входной переменной k, при котором программа выдаёт тот же ответ, что и при входном значении k = 45.
Для Вашего удобства программа приведена на пяти языках программирования.

Бейсик

DIM K, I AS LONG

INPUT K

I = 1

WHILE F(I) < G(K)

  I = I + 1

WEND

PRINT I

 

FUNCTION F(N)
  F = N * N * N

END FUNCTION

 

FUNCTION G(N)
  G = 2 * N + 3

END FUNCTION

Python

def F(n):

    return n*n*n

 

def G(n):

    return 2 * n + 3

 

k = int(input())

i = 1

while F(i) < G(k):

    i+=1

print (i)

Алгоритмический язык

алг

нач

  цел i, k

  ввод k

  i := 1

  нц пока f(i) < g(k)

    i := i + 1

  кц

  вывод i

кон

 

алг цел f(цел n)

нач

  знач := n * n * n

кон

 

алг цел g(цел n)

нач

  знач := 2 * n + 3

кон

Паскаль

var

  k, i : longint;

 

function F(n: longint): longint;

begin

  F := n * n * n;

end;

 

function G(n: longint): longint;

begin

  G := 2 * n + 3;

end;

 

begin

  readln(k);

  i := 1;

  while F(i) < G(k) do

    i := i + 1;

  writeln(i)

end.

C++

#include <iostream>

using namespace std;

 

long F(long n) {

  return n * n * n;

}

 

long G(long n) {

  return 2 * n + 3;

}

 

int main()

{

  long k, i;

  cin >> k;

  i = 1;

  while(F(i) < G(k))

    i++;

  cout << i;

  return 0;

}

 



i
СВОЙСТВА ЗАДАНИЯ
КЭС:
3.2 Оценка сложности вычислений. Время работы и объём используемой памяти, их зависимость от размера исходных данных. Оценка асимптотической сложности алгоритмов. Алгоритмы полиномиальной сложности. Переборные алгоритмы. Примеры различных алгоритмов решения одной задачи, которые имеют различную сложность
3.6 Язык программирования (Паскаль, Python, Java, C++, C#). Типы данных: целочисленные, вещественные, символьные, логические. Ветвления. Сложные условия. Циклы с условием. Циклы по переменной. Обработка данных, хранящихся в файлах. Текстовые и двоичные файлы. Файловые переменные (файловые указатели). Чтение из файла. Запись в файл. Разбиение задачи на подзадачи. Подпрограммы (процедуры и функции). Использование стандартной библиотеки языка программирования
Тип ответа:Краткий ответ
Номер: 467C12
НЕ РЕШЕНО Ответить

Решение задания EGEINF467C12

Ответ: 61

Сначала найдём результат для указанного k = 45. Затем определим все целые k, при которых цикл останавливается на том же i.
F(i) = i³, G(k) = 2k + 3. Цикл увеличивает i от 1 до первого значения, для которого i³ ≥ G(k).
Для заданного k получаем G(k) = 93. Выполнено 4³ = 64 < 93 ≤ 125 = 5³, поэтому выводится 5.
Тот же результат получится тогда и только тогда, когда 64 < 2k + 3 ≤ 125. Отсюда 61 < 2k ≤ 122, а для целых k: 31 ≤ k ≤ 61.
Требуется наибольшее значение из найденного промежутка. Оно равно 61.
Проверка: на выбранной границе последняя истинная проверка и первое ложное условие сохраняются; соседнее внешнее k нарушает одно из этих неравенств.
Дополнительно выполним программу на обеих включённых границах и на соседних внешних целых значениях:
Ввод 30 → вывод 4.
Ввод 31 → вывод 5.
Ввод 61 → вывод 5.
Ввод 62 → вывод 6.
Ответ: 61.

Помочь улучшить сайт

Напишите пожелание к сайту или решению либо сообщите о найденной неточности в задании EGEINF467C12.

Сообщение увидит только команда сайта: на странице оно не публикуется.

Комментарии к решению

Комментарии видны всем посетителям сайта.

Комментариев пока нет. Будьте первым.

Чтобы оставить комментарий, войдите или зарегистрируйтесь.