При каком наименьшем значении входной переменной k программа выдаёт тот же ответ, что и при входном значении k = 64? Для Вашего удобства программа приведена на пяти языках программирования.
| Бейсик | Python |
|---|---|
DIM K, I AS LONG INPUT K I = 12 WHILE I > 0 AND F(I) > K I = I - 1 WEND PRINT I FUNCTION F(N) F = N * N - 20 END FUNCTION
| def f(n): return n * n - 20 k = int(input()) i = 12 while i > 0 and f(i) > k: i = i - 1 print(i)
|
| Паскаль | Алгоритмический язык |
var k, i : longint; function f(n: longint) : longint; begin f := n * n - 20 end; begin readln(k); i := 12; while (i>0) and (f(i)> k) do i := i-1; writeln(i) end.
| алг нач цел i, k ввод k i := 12 нц пока i > 0 и f(i) > k i := i - 1 кц вывод i кон алг цел f(цел n) нач знач := n * n - 20 кон |
| Си++ | |
#include <iostream> using namespace std; long f(long n) { return n * n - 20; } int main() { long k, i; cin >> k; i = 12; while (i>0 && f(i)>k) i––; cout << i << endl; return 0; }
| |
При k = 64 программа выведет число 9. Переменная k отвечает за количество выполнений цикла
«while (i>0) and (f(i)> k) do
i := i-1;».
Запишем неравенство: Для того, чтобы результат вывода программы был равен 9 при
неравенство ещё должно выполняться, а когда i станет равно 9 уже нет. Получаем двойное неравенство:
Следовательно, наименьшее число — 61.
Ответ: 61.

