Задания
Версия для печати и копирования в MS Word
Тип Д21 № 23919
i

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

Бей­сикPython

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 + 2

END FUNCTION

def f(n):

  return n*n*n

 

def g(n):

  return 2*n + 2

 

k = int(input())

i = 1

while f(i) < g(k):

  i += 1

print (i)

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

var

  k, i : longint;

 

function f(n: longint): longint;

begin

  f := n * n * n;

end;

 

function g(n: longint): longint;

begin

  g := 2*n + 2;

end;

 

begin

  readln(k);

  i := 1;

  while f(i) < g(k) do

    i := i + 1;

  writeln(i)

end.

алг

нач

  цел i, k

  ввод k

  i := 1

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

    i := i + 1

  кц

  вывод i

кон

 

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

нач

  знач := n * n * n

кон

 

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

нач

  знач := 2*n + 2

кон

Си++

#include <iostream>

using namespace std;

long f(long n) {

  return n * n * n;

}

 

long g(long n) {

  return 2*n + 2;

}

 

int main()

{

  long k, i;

  cin >> k;

  i = 1;

  while (f(i) < g(k))

    i++;

  cout << i << endl;

  return 0;

}

Спрятать решение

Ре­ше­ние.

Про­грам­ма на­хо­дит самое ма­лень­кое на­ту­раль­ное i такое, что вы­пол­не­но не­ра­вен­ство i в кубе боль­ше или равно 2k плюс 2.

Для k = 27 по­лу­ча­ем:

i в кубе боль­ше или равно 56 рав­но­силь­но i боль­ше или равно 3,825 рав­но­силь­но i = 4.

Те­перь, зная i, найдём мак­си­маль­ное k, при ко­то­ром про­грам­ма найдёт такое же i:

64 боль­ше или равно 2k плюс 2 рав­но­силь­но 31 боль­ше или равно k рав­но­силь­но k = 31.

Ответ: 31.

Источник: ЕГЭ по ин­фор­ма­ти­ке 2020. До­сроч­ная волна. Ва­ри­ант 1