The problem exists in the part where the level is divided by 2.
All even numbers, when divided by two produce a whole number, whereas odd numbers produce non-integer values. As sumwun said, the way Pokemon executes math is that non-integer values are constantly rounded down to produce a whole number.
Assume n
is even. Knowing this, dividing n
by two will always result in a whole number n/2
. Thus, when n
is increased by one, it will become odd. Divide by two:
(n+1)/2
= n/2 + 0.5
0.5 is not whole, so round down
= n/2 + 0
= n/2
Therefore n/2 = (n+1)/2
Thus, when n
is odd, the formula actually becomes n^3*((((n-1)/2) + 32)/50). You can justify by letting n = 39
:
39^3*((((39-1)/2) + 32)/50)
= 60505.38
= 60505
Which is the value presented on Bulbapedia!
Thank you sumwun for pointing that out since I would have never realised.
Hope I helped. :)
Source