Я пытаюсь суммировать цифры в очень большое число. Я получил длину числа с помощью l = answer.bitLength()
, но не могу понять, как увеличивать каждую цифру с помощью цикла For. Есть идеи?
Я использую java.math.biginteger
.
Visual Studio 2005 версии 2.0
Я также должен добавить, что я не могу использовать ‹> или любую из простых математических опций с большим целым числом, которое я использую. Если бы кто-нибудь мог сказать мне, как использовать другой biginteger, я был бы более чем готов поменяться местами.
Dim answer As java.math.BigInteger
Dim sum As Integer = 0
Dim x As Integer
Dim i As Integer
'Sets value of answer equal to 1
answer = java.math.BigInteger.valueOf(1)
'gets 100!
For i = 1 To 100
answer = answer.multiply(java.math.BigInteger.valueOf(i))
Next
'gets length of answer
Dim l As Integer
l = answer.bitLength()
'Sums up digits in 100!
For x = 0 To l - 1
'Need to pull each character here to add them all up
Next
Окончательное решение для суммирования цифр. Спасибо Вагеоге.
Dim r As Integer
Dim s As Integer
s = 0
While (answer.compareTo(java.math.BigInteger.valueOf(0)) > 0)
r = answer.mod(java.math.BigInteger.valueOf(10)).ToString()
s = s + r
answer = answer.divide(java.math.BigInteger.valueOf(10))
End While
System.Numerics.BigInteger
нетbitLength
(или дажеBitLength
) члена. Вы уверены, что не думаете о Java? - person LukeH   schedule 26.01.2011System.Numerics.BigInteger
. - person Gabe   schedule 26.01.2011