
Calculation
[Originally posted by Vicky]
Hi... Can anyone help me....
The program that I'm writing now is simulating the Collatz Problem and determine the number of steps taken to reach 1 for any given intger.The process is that if the number is even, divide that number by 2; If the number is odd, multiply that number by 3 and then add 1. the calculation goes on and on until the number is 1
I got this problem:
If the input number is odd then multiply the number by 3 then add 1 to it.
I call the number intNu..
I've type intNu= (intNu*3)+1)
but when i run the program, a message pop up and says i got this overflow problem....
What should i do to make it work....
Thankyou

Re:Calculation
[Originally posted by Eli Martin]
Is intNu really overranging?ÿ I'm sure you know, but the value range for and int is 32767 thru 32768.ÿ If it is truely in range, email me the code and I will take a deeper look at it.

Re:Calculation
[Originally posted by JPicasso]
integer variables can only hold values upto
32,000 someting.
try declaring variables as Longs.

Re:Calculation
[Originally posted by Jonathan Barnes]
On a purely mathematical note, there is one part of the formula I do not quite follow:ÿ if the goal is to get to 1 by iteration, I would think it would be something like:
dim lngnum as long
do while lngnum <> 1
if lngnum MOD 2 = 0 then
ÿ lngnum = lngnum / 2
else
ÿ lngnum = lngnum  1
ÿ 'instead of lngnum * 3 + 1
endif
loop