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

Как возвести в квадрат в java

Как возвести в квадрат в java

5 лет назад

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

Ответы

1

Самый простой способ возвести число в квадрат — это умножить число на само себя:

1
num * num;

Также можно воспользоваться функцией pow класса Math:

1
Math.pow(num, 2);

4 года назад

Aleksandr Litvinov

0

Число возводят в квадрат умножением на само себя:

1
2
3
int x = 7;
int square = x * x;
System.out.println(square); // 49

Math.pow

1
2
double result = Math.pow(7, 2);
System.out.println(result); // 49.0

Math.pow() принимает и возвращает double. Для целого результата нужно приведение типа:

1
int square = (int) Math.pow(7, 2);

Для квадрата x * x проще и работает быстрее. Math.pow удобен для других степеней: Math.pow(2, 10), Math.pow(x, 0.5).

Переполнение int

int хранит числа до 2 147 483 647. Квадрат числа больше 46 340 в него не помещается, и Java молча выдаёт неверный результат:

1
2
int x = 50_000;
System.out.println(x * x); // -1794967296

Решение — считать в long:

1
2
long square = (long) x * x;
System.out.println(square); // 2500000000

Приведение нужно до умножения: (long) (x * x) переполнится раньше, чем сработает приведение.

Чтобы при переполнении получить ошибку, есть Math.multiplyExact:

1
int square = Math.multiplyExact(x, x); // ArithmeticException при переполнении

Очень большие числа

1
2
3
4
import java.math.BigInteger;

BigInteger big = new BigInteger("123456789012345678901234567890");
System.out.println(big.pow(2));

BigInteger не ограничен по размеру.

Квадрат каждого элемента массива

1
2
3
int[] nums = {1, 2, 3, 4};
int[] squares = java.util.Arrays.stream(nums).map(n -> n * n).toArray();
System.out.println(java.util.Arrays.toString(squares)); // [1, 4, 9, 16]

Обратная операция

Квадратный корень — Math.sqrt():

1
System.out.println(Math.sqrt(49)); // 7.0

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

11 дней назад

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

+7 800 100 22 47

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

+7 495 085 21 62

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

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