/
Вопросы и ответы
/
Java
/

Как сделать степень в java

Как сделать степень в java

5 лет назад

Человек-Молекула

Ответы

0

Самый простой способ в Java возвести число в степень – это использовать статический метод pow() класса Math. Метод принимает два параметра. Первый - число, которое возводим с степень. Второй – степень, в которую нужно возвести. Метод возвращает число типа double

1
2
3
4
5
// 2 в степени 3
Math.pow(2, 3); // 8.0

// 4 в квадрате
Math.pow(4, 2); // 16.0

4 года назад

Maksim Litvinov

0

Возвести число в степень в Java можно методом Math.pow(основание, показатель). Он принимает и возвращает double:

1
2
3
double a = Math.pow(2, 10);   // 1024.0
double b = Math.pow(9, 0.5);  // 3.0 — квадратный корень
double c = Math.pow(2, -1);   // 0.5

Чтобы получить целое число, приведите результат к int или long:

1
2
int x = (int) Math.pow(3, 4);    // 81
long y = (long) Math.pow(2, 40); // 1099511627776

Точность и большие числа

double хранит около 15–16 значащих цифр. Для степеней, которые не помещаются в long (больше 2⁶³ − 1), используйте BigInteger:

1
2
3
4
import java.math.BigInteger;

BigInteger big = BigInteger.valueOf(2).pow(100);
System.out.println(big); // 1267650600228229401496703205376

Степень двойки

Для степеней двойки подходит побитовый сдвиг, он работает с целыми числами без double:

1
2
int p = 1 << 10;   // 1024
long q = 1L << 40; // 1099511627776

Своя функция для целых чисел

Быстрое возведение в степень делит показатель пополам и выполняет около log₂(n) умножений:

1
2
3
4
5
6
7
8
9
10
11
12
13
static long power(long base, int exp) {
    long result = 1;
    while (exp > 0) {
        if ((exp & 1) == 1) {
            result *= base;
        }
        base *= base;
        exp >>= 1;
    }
    return result;
}

System.out.println(power(3, 5)); // 243

Квадрат и корень

1
2
3
double square = x * x;          // быстрее, чем Math.pow(x, 2)
double root = Math.sqrt(16);    // 4.0
double cubeRoot = Math.cbrt(27); // 3.0

Арифметику и типы данных разбирают в бесплатном курсе «Основы Java».

17 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845