Возведение числа в степень в Java — программа через цикл и Math.pow
Чтобы возвести число base в степень exponent, нужно умножить его само на себя exponent раз. Это легко сделать в цикле.
Пример 1: возведение в степень с помощью цикла while
В цикле while мы умножаем result на base и уменьшаем exponent на 1, пока exponent не станет равен 0.
class Main {
public static void main(String[] args) {
int base = 3, exponent = 4;
long result = 1;
while (exponent != 0) {
result *= base;
--exponent;
}
System.out.println("Answer = " + result);
}
}
Вывод:
Answer = 81
В программе base = 3 и exponent = 4. Цикл while умножает result на base ровно 4 раза: 1 × 3 × 3 × 3 × 3 = 81.
Пример 2: возведение в степень с помощью цикла for
Тот же подход, но через цикл for: уменьшение exponent происходит в блоке обновления.
class Main {
public static void main(String[] args) {
int base = 3, exponent = 4;
long result = 1;
for (; exponent != 0; --exponent) {
result *= base;
}
System.out.println("Answer = " + result);
}
}
Вывод:
Answer = 81
После каждой итерации exponent уменьшается на 1, а result умножается на base.
Предупреждение
Обе программы выше не работают с отрицательной степенью. Для этого случая используйте метод Math.pow() из стандартной библиотеки Java.
Пример 3: возведение в степень с помощью Math.pow()
С отрицательной степенью справляется встроенная функция Math.pow(base, exponent).
class Main {
public static void main(String[] args) {
int base = 3, exponent = -4;
double result = Math.pow(base, exponent);
System.out.println("Answer = " + result);
}
}
Вывод:
Answer = 0.012345679012345678
В этой программе используется Math.pow() для вычисления степени с заданным основанием.
Пример 4: степень отрицательного числа
Метод Math.pow() корректно работает и с отрицательным основанием.
class Main {
public static void main(String[] args) {
// negative number
int base = -3, exponent = 2;
double result = Math.pow(base, exponent);
System.out.println("Answer = " + result);
}
}
Вывод:
Answer = 9.0
Здесь Math.pow() вычисляет степень отрицательного числа -3.