Próbuję odczytać naprawdę duże liczby ze standardowego wejścia i zsumować je.
Jednak aby dodać do BigInteger, muszę użyć BigInteger.valueOf(long);
:
private BigInteger sum = BigInteger.valueOf(0);
private void sum(String newNumber) {
// BigInteger is immutable, reassign the variable:
sum = sum.add(BigInteger.valueOf(Long.parseLong(newNumber)));
}
To działa dobrze, ale jako BigInteger.valueOf()
jedyny zajmuje a long
, nie mogę dodać liczb większych niż long
wartość maksymalna (9223372036854775807).
Ilekroć próbuję dodać 9223372036854775808 lub więcej, otrzymuję NumberFormatException (co jest całkowicie oczekiwane).
Czy jest coś takiego BigInteger.parseBigInteger(String)
?