Как использовать BigInteger?

148
задан Ivar 28 August 2018 в 09:36
поделиться

4 ответа

BigInteger является неизменным. В javadocs указано, что add () «[r] eturns a BigInteger, значение которого равно (this + val)». Следовательно, вы не можете изменить sum , вам необходимо переназначить результат метода add переменной sum .

sum = sum.add(BigInteger.valueOf(i));
200
ответ дан 23 November 2019 в 22:19
поделиться
sum = sum.add(BigInteger.valueOf(i))

BigInteger класс неизменен, поэтому вы не можете изменить его состояние. Таким образом, вызов «add» создает новый BigInteger , а не изменяет текущий.

57
ответ дан 23 November 2019 в 22:19
поделиться

Другие ответы отметили это; BigInteger неизменен. Вот небольшое изменение, чтобы заставить этот код работать:

BigInteger sum = BigInteger.valueOf(0);
for(int i = 2; i < 5000; i++) {
    if (isPrim(i)) {
        sum = sum.add(BigInteger.valueOf(i));
    }
}
21
ответ дан 23 November 2019 в 22:19
поделиться

BigInteger - неизменяемый класс. Поэтому всякий раз, когда вы выполняете какие-либо арифметические операции, вы должны переназначить вывод переменной.

10
ответ дан 23 November 2019 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: