Определите число, которое напечатает программа. Для Вашего удобства программа приведена на пяти языках программирования.
| Бейсик | 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.

