Определите число, которое напечатает программа. Для Вашего удобства программа приведена на пяти языках программирования.
| Бейсик | Python |
|---|---|
DIM I AS LONG I = 1 WHILE F(I) < G(I) I = I * 2 WEND PRINT I FUNCTION F(N) F = N * N END FUNCTION FUNCTION G(N) G = 1000*N + 3 END FUNCTION
| def f(n): return n*n def g(n): return 1000*n+3 i = 1 while f(i) < g(i): i *= 2 print (i)
|
| Алгоритмический язык | Паскаль |
алг нач цел i i := 1 нц пока f(i) < g(i) i := i * 2 кц вывод i кон алг цел f(цел n) нач знач := n * n кон алг цел g(цел n) нач знач := 1000*n + 3 кон | var i : longint; function f(n: longint): longint; begin f := n * n; end; function g(n: longint): longint; begin g := 1000*n + 3; end; begin i := 1; while f(i) < g(i) do i := i*2; writeln(i) end. |
| Си++ | |
#include <iostream> using namespace std; long f(long n) { return n * n; } long g(long n) { return 1000*n + 3; } int main() { long i; i = 1; while (f(i) < g(i)) i = i*2; cout << i << endl; return 0; }
| |
Алгоритм ищет число i, удовлетворяющее следующим условиям:
1) i — степень двойки
2) i — наименьшее число при котором значение функции f(n) = n2 больше значения функции
Заметим, что при n > 1000 f(n) > g(n). Следовательно, искомое i равно 1024.
Ответ: 1024.

