12.17. Java — Метод Math.pow()
Метод Math.pow() — возводит значение первого аргумента в степень второго аргумента, тем самым позволяет осуществить быстрое возведение в степень любых значений.
Синтаксис
Параметры
Подробная информация о параметрах:
- base — любой примитивный тип данных.
- exponent — любой примитивный тип данных.
Возвращаемое значение
- В Java Math.pow() возвращает double значение первого аргумента, возведенное в степень второго аргумента.
Пример 1: возведение числа в квадрат и куб
Для возведения любого числа в квадрат с помощью метода Math.pow() необходимо в качестве второго аргумента использовать значение 2, а для возведения в куб — 3 и т.д. Заметьте, для вывода на экран целого значения используется «%.0f», так как метод возвращает double значение.
Получим следующий результат:
Пример 2: возведение числа в дробную степень
Получим следующий результат:
Пример 3: возведение числа в отрицательную степень
Получим следующий результат:
Пример 4: возведение отрицательного числа степень
Заметьте, что при возведении отрицательного числа в дробную степень мы не получим результат (NaN).
Дополнительные классы

Для выполнения различных математических операций в Java в пакете java.lang определен класс Math . Рассмотрим его основные методы:
abs(double value) : возвращает абсолютное значение для аргумента value
acos(double value) : возвращает арккосинус value. Параметр value должен иметь значение от -1 до 1
asin(double value) : возвращает арксинус value. Параметр value должен иметь значение от -1 до 1
atan(double value) : возвращает арктангенс value
cbrt(double value) : возвращает кубический корень числа value
ceil(double value) : возвращает наименьшее целое число с плавающей точкой, которое не меньше value
cos(double d) : возвращает косинус угла d
cosh(double d) : возвращает гиперболический косинус угла d
exp(double d) : возвращает основание натурального логарифма, возведенное в степень d
floor(double d) : возвращает наибольшее целое число, которое не больше d
floorDiv(int a, int b) : возвращает целочисленный результат деления a на b
log(double a) : возвращает натуральный логарифм числа a
log1p(double d) : возвращает натуральный логарифм числа (d + 1)
log10(double d) : возвращает десятичный логарифм числа d
max(double a, double b) : возвращает максимальное число из a и b
min(double a, double b) : возвращает минимальное число из a и b
pow(double a, double b) : возвращает число a, возведенное в степень b
random() : возвращает случайное число от 0.0 до 1.0
rint(double value) : возвращает число double, которое представляет ближайшее к числу value целое число
round(double d) : возвращает число d, округленное до ближайшего целого числа
scalb(double value, int factor) : возвращает произведение числа value на 2 в степени factor
signum(double value) : возвращает число 1, если число value положительное, и -1, если значение value отрицательное. Если value равно 0, то возвращает 0
sin(double value) : возвращает синус угла value
sinh(double value) : возвращает гиперболический синус угла value
sqrt(double value) : возвращает квадратный корень числа value
tan(double value) : возвращает тангенс угла value
tanh(double value) : возвращает гиперболический тангенс угла value
toDegrees(double value) переводит радианы в градусы и toRadians(double value) — градусы в радианы
Как возводить в степень в Java?

В этой статье мы расскажем о том, как выполнять возведение в степень в языке программирования Java. Читателю будут представлены 5 актуальных способов решения поставленной задачи.

Но прежде чем мы приступим к перечислению способов, давайте для начала вспомним, что же вообще представляет собой операция возведения:

Таким образом, речь идет об умножении числа на свое же значение n-е количество раз. Умножаемое число — это основание степени, а количество операций по умножению — показатель. Результат такого перемножения и будет называться возведением в степень. Для числа 3 3 результат будет равен 27, так как 3 х 3 х 3 = 27.
Теперь давайте рассмотрим, как это все реализуется в языке программирования Java.
Math pow
Использование класса Math — наиболее простой вариант решения поставленной задачи. На практике его применяют в большинстве ситуаций. Public class Math включает в себя математические методы, в том числе те, которые связаны с геометрией и тригонометрией. В этом классе методы реализованы в качестве статических, следовательно, есть возможность вызывать их через имя класса Math, не создавая объект класса.

public static int pow(int value, int powValue) <
return (int) Math.pow(value, powValue);
Здесь пришлось использовать операцию приведения типа (int), т. к. этот метод класса Math осуществляет возвращение значения типа double (аргументы, по сути, тоже double , однако там применяется неявное приведение типа).
Теперь рассмотрим несколько дополнительных вариантов решения поставленной задачи.
Значение квадрата числа
Начнем с наиболее простого и напишем метод по возведению в квадрат:

Выполняем вызов в main:
public static void main(String[] args) <
Как видим, возведение в квадрат сложностей не вызывает.
Число в степени
Чаще всего нам приходится работать не с квадратным значением числа, а с числом в определенной степени. Усложним предыдущий вариант и задействуем кастомное Java pow-значение:
public static void main(String[] args) <
public static int pow(int value, int powValue) <
int result = 1;
for (int a = 1; а <= powValue; а++) <
result = result * value;
return result;
Алгоритм несложен: мы как будто задаем точку отсчета result , а потом умножаем его на значение value столько, сколько будет работать цикл с powValue .
Рекурсия
Следующий вариант является уже более экзотичным.

Вы должны знать, что рекурсия позволяет методу осуществлять вызов самого себя. В языке программирования Java такие методы тоже есть и называются они рекурсивными.
На практике рекурсивно можно решать многие алгоритмические задачи. Наша — не исключение. Давайте выполним возведение в степень рекурсивно:

Как видно из реализации, существуют 2 момента:
- Условие выхода из рекурсии. Если возведенное значение степени достигает единицы, нас выбрасывает назад.
- Непосредственный механизм умножения value на результат вызова того же самого метода, однако с powValue — 1.
Для совсем ленивых разработчиков существуют способы «из коробки». Рассмотрим один из них.
BigInteger
BigInteger — это класс, который обеспечивает хранение целых чисел произвольной величины. Здесь существуют разные арифметические методы, которые позволяют работать с числами.

Выполняем возведение посредством BigInteger в Java:

Тут все предельно просто и не нуждается в дополнительных разъяснениях, не так ли? Однако на сегодня все, теперь вы будете знать о разных способах, позволяющих возводить в степень в «Джава».
По материалам: https://javarush.ru/groups/posts/2828-kak-vihpolnitjh-vozvedenie-v-stepenjh-v-java.
Интересуют более продвинутые знания по языку программирования Java? Добро пожаловать на курсы в Otus!