Главная / Программирование / Оценить сверху время работы (т.е. количество выполнений тела цикла) алгоритма быстрого возведения в степень: int fastPow(double a, int n) { // дано: основание a и показатель степени n >= 0 // надо: вычислить a в степени n double b = a, p = 1.0; int k =

Оценить сверху время работы (т.е. количество выполнений тела цикла) алгоритма быстрого возведения в степень: int fastPow(double a, int n) { // дано: основание a и показатель степени n >= 0 // надо: вычислить a в степени n double b = a, p = 1.0; int k = n; while (k > 0) { // Invariant: b^k * p == a^n if (k%2 == 0) { // k четное k /= 2; b *= b; } else { // k нечетное --k; p *= b; } } return p; }

вопрос

Правильный ответ:

Время работы не больше, чем C*n, где C - некоторая константа (т.е. время пропорционально числу n).
Время работы не больше, чем C*log2 n, где C - некоторая константа (т.е. время пропорционально количеству цифр в двоичной или десятичной записи числа n).
Время работы не больше, чем C*r, где C - некоторая константа, r - квадратный корень из числа n (т.е. время пропорционально квадратному корню из n).
Сложность вопроса
56
Сложность курса: Программирование
84
Оценить вопрос
Очень сложно
Сложно
Средне
Легко
Очень легко
Комментарии:
Аноним
Кто ищет эти вопросы inuit? Это же очень простые ответы
26 сен 2020
Аноним
Если бы не опубликованные подсказки - я бы сломался c этими тестами intuit.
24 июн 2019
Аноним
Я провалил экзамен, почему я не увидел данный сайт с ответами интуит прежде
26 фев 2016
Оставить комментарий
Другие ответы на вопросы из темы программирование интуит.