9 ответов:
BigIntegerнезыблем. В javadocs говорится, что добавить() " [r] возвращает BigInteger, значение которого (this + val).- Поэтому ты не можешь изменитьсяsum, вам нужно переназначить результатaddметодsumпеременной.sum = sum.add(BigInteger.valueOf(i));
sum = sum.add(BigInteger.valueOf(i))The
BigIntegerкласс является неизменяемым, поэтому вы не можете изменить его состояние. Поэтому вызов " add " создает новыйBigInteger, а не изменение тока.
другие ответы прибили его; BigInteger является неизменным. Вот небольшое изменение, чтобы заставить этот код работать.
BigInteger sum = BigInteger.valueOf(0); for(int i = 2; i < 5000; i++) { if (isPrim(i)) { sum = sum.add(BigInteger.valueOf(i)); } }
java.math.BigIntegerэто неизменяемые класс, поэтому мы не можем назначить новый объект в месте уже назначенного объекта. Но вы можете создать новый объект, чтобы присвоить новое значение, например:sum = sum.add(BigInteger.valueOf(i));
BigInteger-это неизменяемый класс. Поэтому всякий раз, когда вы делаете какую-либо арифметику, вы должны переназначить вывод переменной.
Да, это непреложный
sum.add(BigInteger.valueOf(i));таким образом, метод add () класса BigInteger не добавляет новое значение BigIntger к своему собственному значению ,но создает и возвращает новую ссылку BigInteger без изменения текущего BigInteger и это то, что делается даже в случае строк
Biginteger- это неизменяемый класс. Вам нужно явно присвоить значение вашего вывода сумме следующим образом:sum = sum.add(BigInteger.valueof(i));
на самом деле вы можете использовать,
BigInteger sum= new BigInteger("12345");для создания объекта для класса BigInteger.Но проблема здесь в том, что вы не можете дать переменную в двойнике quotes.So мы должны использовать valueOf () метод и мы должны хранить ответ в этой сумме again.So напишем,
sum= sum.add(BigInteger.valueOf(i));
поскольку вы суммируете некоторые значения int вместе, нет необходимости использовать BigInteger.
longдля этого достаточно.int- это 32 бита, в то время какlong- Это 64 бита, которые могут содержать сумму всех значений int.
Comments