У меня есть следующий код на голове метода:Проблем с java.math.BigInteger
BigInteger foo = BigInteger.valueOf(0);
BigInteger triNum = BigInteger.valueOf(0);
//set min value to 1*2*3*4*5*...*199*200.
BigInteger min = BigInteger.ONE;
BigInteger temp = BigInteger.ZERO;
for(int i=1; i<=200; i++)
{
temp = BigInteger.valueOf(i);
min = min.multiply(temp);
}
System.out.println(min);
while(triNum.compareTo(min) <= 0)
{
foo.add(BigInteger.ONE);
triNum = triNum.add(foo);
System.out.println("triNum: "+triNum);
}
Это, как предполагается загрузить мин до значения (1 * 2 * 3 * ... * 199 * 200), а затем установите triNum в первый * треугольный номер ** со значением больше мин.
Проблема в том, что когда я запускаю метод, все, что я получаю, это окно терминала со списком «triNum: 0», когда-либо прокручивающимся по экрану ... Я ничего не вижу в своем коде (хотя это вполне возможно, я допустил некоторую ошибку, и я немного не знаком с math.BigInteger), и это, похоже, указывает на класс BigInteger. Кто-нибудь видит ошибку в моем коде?
.............................................. .................................................. ..........................
* Номер треугольника - это номер, который может быть достигнут: 1 + 2 + 3 + 4 + 5 + 6 + 7 + ...
Помимо ошибки с помощью foo.add, пожалуйста, обратите внимание, что ваша программа займет очень много времени, поэтому вы должны найти другой способ сделать то, что хотите. В качестве намека есть простая формула, чтобы узнать, что сумма 1 + 2 + 3 + 4 ... + n не содержит всех чисел. – schnaader
Очень долго, как во много дольше, чем жизнь Вселенной (результат имеет 188 цифр). – starblue