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

Как возводить в степень в Java?

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

Как возводить в степень в Java?

Таким образом, речь идет об умножении числа на свое же значение n-е количество раз. Умножаемое число — это основание степени, а количество операций по умножению — показатель. Результат такого перемножения и будет называться возведением в степень. Для числа 33 результат будет равен 27, так как 3 х 3 х 3 = 27.

Теперь давайте рассмотрим, как это все реализуется в языке программирования Java.

Math pow

Использование класса Math — наиболее простой вариант решения поставленной задачи. На практике его применяют в большинстве ситуаций. Public class Math включает в себя математические методы, в том числе те, которые связаны с геометрией и тригонометрией. В этом классе методы реализованы в качестве статических, следовательно, есть возможность вызывать их через имя класса Math, не создавая объект класса.

Как возводить в степень в Java?

Смотрим код:

public static int pow(int value, int powValue) {

   return (int) Math.pow(value, powValue);

}

Здесь пришлось использовать операцию приведения типа (int), т. к. этот метод класса Math осуществляет возвращение значения типа double (аргументы, по сути, тоже double, однако там применяется неявное приведение типа).

Теперь рассмотрим несколько дополнительных вариантов решения поставленной задачи.

Значение квадрата числа

Начнем с наиболее простого и напишем метод по возведению в квадрат:

Как возводить в степень в Java?

Выполняем вызов в main:

public static void main(String[] args) {

   System.out.println(Solution.pow(7));

}

Как видим, возведение в квадрат сложностей не вызывает.

Число в степени

Чаще всего нам приходится работать не с квадратным значением числа, а с числом в определенной степени. Усложним предыдущий вариант и задействуем кастомное Java pow-значение:

public static void main(String[] args) {

   System.out.println(Solution.pow(7, 4));

}

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?

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

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

Как возводить в степень в Java?

Как видно из реализации, существуют 2 момента:

  1. Условие выхода из рекурсии. Если возведенное значение степени достигает единицы, нас выбрасывает назад.
    1. Непосредственный механизм умножения value на результат вызова того же самого метода, однако с powValue — 1.

Для совсем ленивых разработчиков существуют способы «из коробки». Рассмотрим один из них.

BigInteger

BigInteger — это класс, который обеспечивает хранение целых чисел произвольной величины. Здесь существуют разные арифметические методы, которые позволяют работать с числами.

Как возводить в степень в Java?

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

Как возводить в степень в Java?

Тут все предельно просто и не нуждается в дополнительных разъяснениях, не так ли? Однако на сегодня все, теперь вы будете знать о разных способах, позволяющих возводить в степень в «Джава».  

По материалам: https://javarush.ru/groups/posts/2828-kak-vihpolnitjh-vozvedenie-v-stepenjh-v-java.

Интересуют более продвинутые знания по языку программирования Java? Добро пожаловать на курсы в Otus!

Как возводить в степень в Java?