Решение задания №21 Досрочный ЕГЭ по информатике 2019 от ФИПИ. Информатика ЕГЭ 21 задание разбор. Как решать задание №21 ЕГЭ по информатике 2019 г.
Напишите в ответе число, равное количеству различных значений входной переменной k, при которых приведённая ниже программа выводит тот же ответ, что и при входном значении k = 12. Значение k = 12 также включается в подсчёт количества различных значений k. Для Вашего удобства программа приведена на пяти языках программирования.
Бейсик |
Python |
|
DIM K, I AS LONG INPUT K I = 1 WHILE F(I) < K I = I + 1 WEND IF F(I)- K <= K - F(I - 1) THEN PRINT I ELSE PRINT I - 1 END IF FUNCTION F(N) F = N * N * N END FUNCTION |
|
|
def f(n): return n * n * n i = 1 k = int(input()) while f(i) < k: i+=1 if (f(i)- k <= k - f(i - 1)): print(i) else: print(i - 1) |
|
Алгоритмический язык |
Паскаль |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
алг нач цел i, k ввод k i := 1 нц пока f(i) < k i := i + 1 кц если f(i) - k <= k - f(i - 1) то вывод i иначе вывод i - 1 все кон алг цел f(цел n) нач знач := n * n * n кон |
|
|
var k, i: longint; function f(n: longint): longint; begin f := n * n * n; end; begin readln(k); i := 1; while f(i) < k do i := i + 1; if f(i)- k <= k - f(i - 1) then writeln(i) else writeln(i - 1); end. |
|
С++ |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
#include <iostream> using namespace std; long f(long n) { return n * n * n; } int main() { long k, i; cin >> k; i = 1; while (f(i) < k) i++; if (f(i) - k <= k - f(i - 1)){ cout << i; } else { cout << i - 1; } return 0; } |
|
|
Решение:
k=12
while f(i) < k:
i+=1 |
while i3< 12:
i+=1 |
после цикла, i = 3 |
if (f(i)- k <= k — f(i — 1)):
print(i)
else:
print(i — 1) |
if (33— 12 <= 12 — 23):
print(i)
else:
print(i — 1) |
if (27- 12 <= 12 — 8):
print(i)
else:
print(i — 1) 3-1= 2 |
|
|
27 — k <= k — 8
35 <= 2k
k >= 17,5
k=[9..17] => 9 число |
if (f(i)- k <= k — f(i — 1)):
print(i)
else:
print(i — 1) |
if (23— k <= 12 — 13):
print(i)
else:
print(i — 1) |
if (8- k <= k — 1):
print(i) 2
else:
print(i — 1) |
|
|
8 — k <= k — 1
9 <= 2k
k >= 4,5
k=[5..8] => 4 число |
9+4 = 13
Ответ: 13