Напишите в ответе число, равное количеству различных значений входной переменной k, при которых приведённая ниже программа выводит тот же ответ, что и при входном значении k = 12. Значение k = 12 также включается в подсчёт различных значений k.
| Бейсик | Python |
|---|---|
DIM K, I AS INTEGER 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
k = int(input()) i = 1 while f(i) < k: i = i + 1 if f(i)–k <= k–f(i−1): print(i) else: print(i−1)
|
| Паскаль | Алгоритмический язык |
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.
| алг нач цел k, i ввод k i := 1 нц пока f(i) < k i := i + 1 кц если f(i)−k <= k−f(i−1) то вывод i иначе вывод i−1 все кон
алг цел f(цел x) нач знач := n * n * n кон
|
| С++ | |
#include <iostream> using namespace std;
int F(int n){ return n*n*n; } int main(){ int i, k; cin >> k; i = 1; while(F(i) < k) i=i+1; if(F(i)−k<=k−F(i−1)) cout << i; else cout << (i − 1); return 0; }
| |
Подставим k = 12. Тогда будет выведено число 2.
Значит, нас интересуют такие значения k, при которых i = 2, и при этом f(i)−k <= k−f(i−1). Или значения i = 3, при которых f(i) − k > k−f(i−1).
Имеем:
1)
2)
Получаем, что нас интересуют целые числа от 5 до 17, таких чисел 13.
Ответ: 13.

