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

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

Бей­сикPython

DIM I AS LONG

I = 1

WHILE F(I) < G(I)

  I = I * 2

WEND

PRINT I

 

FUNCTION F(N)

  F = N * N * N

END FUNCTION

 

FUNCTION G(N)

  G = 1000*N*N + 3

END FUNCTION

def f(n):

    return n*n*n

 

def g(n):

    return 1000*n*n +3

 

i = 1

while f(i) < g(i):

    i*=2

print (i)

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

var

  i : longint;

function f(n: longint): longint;

begin

  f := n * n * n;

end;

 

function g(n: longint): longint;

begin

  g := 1000*n * n + 3;

end;

 

begin

  i := 1;

  while f(i) < g(i) do

    i := i*2;

  writeln(i)

end.

алг

нач

  цел i

  i := 1

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

    i := i * 2

  кц

  вывод i

кон

 

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

нач

  знач := n * n * n

кон

 

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

нач

  знач := 1000*n * n + 3

кон

Си++

#include <iostream>

using namespace std;

long f(long n) {

    return n * n * n;

}

long g(long n) {

    return 1000*n * n + 3;

}

int main()

{

    long i;

    i = 1;

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

      i = i*2;

    cout << i << endl;

    return 0;

}

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

Ре­ше­ние.

Нужно по­до­брать такое ми­ни­маль­ное i, ко­то­рое

1)  яв­ля­ет­ся сте­пе­нью 2

2)  под­хо­дит по усло­вию i * i * i >= 1000*i * i + 3.

Упро­стим усло­вие: 0 >= i*i*(1000 - i) + 3. Оно вы­пол­нит­ся при пер­вом i, ко­то­рое будет боль­ше 1000, тогда по пер­во­му усло­вию  — это число 1024.

 

Ответ: 1024.

Источник: Тре­ни­ро­воч­ная ра­бо­та по ИН­ФОР­МА­ТИ­КЕ 11 класс 30 сен­тяб­ря 2016 года Ва­ри­ант ИН10103