Java длинный числовой - PullRequest
       3

Java длинный числовой

2 голосов
/ 27 декабря 2011

Привет, я пытаюсь найти решение 300 ^ 121 или 726 ^ 85 или как это длинные числовые операции, но в netbeans на экране вывода я не вижу больше, чем 9223372036854775807, как я могу сделать эти операции?

Ответы [ 2 ]

6 голосов
/ 27 декабря 2011

Взгляните на класс java.lang.BigInteger .Это позволяет вам иметь дело с целыми числами, большими, чем Long.MAX_VALUE.Вы можете сделать что-то вроде:

BigInteger huge = BigInteger.valueOf(300).pow(121);
System.out.println("300^121 = " + huge.toString());
3 голосов
/ 27 декабря 2011

На самом деле он не имеет ничего общего с netbeans, но вместо этого это максимальное значение, которое вы можете представить с помощью long. Длинный номер представляется в виде 64-разрядного числа со знаком, что означает, что он может доходить до 2 ^ 63 - 1, что составляет 9223372036854775807. Для этого в java.lang.Long есть константа, называемая MAX_VALUE.

Для представления больших чисел вам нужно использовать BigDecimal или BigInteger. Вы можете попробовать что-то вроде этого:

System.out.println(new BigDecimal(300).pow(121));

И это должно дать вам это.

539103089974329363123953948852881511919442688261355331920300000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...