Win a copy of Mesos in Action this week in the Cloud/Virtualizaton forum!

Recursion

Danish Shaukat
Ranch Hand
Posts: 341
Hi all !
This program calculates the power of a number using recursion.
if i set the initial value of ans(the local variable in the method power)
other than 1 , things get messed up why???
One other thing.
I'm using the following stmt
ans=base1*power(base1,power1-1);
But even if i use
ans*=base1*power(base1,power1-1);

But i guess the best approach is to simply return the expresion
return base1*power(base1,power1-1);

--Danish

[ November 03, 2002: Message edited by: Danish Shaukat ]
[ November 03, 2002: Message edited by: Danish Shaukat ]
[ November 03, 2002: Message edited by: Danish Shaukat ]

Anonymous
Ranch Hand
Posts: 18944
Recursion can be a powerful tool if left in the hands of someone who understands Machiavellistic principles: divide and conquer. If we apply these nice little principles to your nice little problem, we might notice the following:
the problem is: find pow(x, y) where both x and y are integral numbers. The following simple statements are considered to be true:
- if y < 0 we consider the answer to be 0
- else if y == 0 we consider the answer to be 1
- else if y == 1 the anser will be x
- else we (ab)use some Poor Old Wanderer (pow) to do some calculations for us: z= pow(x, y/2). If y is even, pow(x, y) equals z*z, else (if y is odd), pow(x, y) equals x*z*z.
The notions above allow us to implement the pow(x, y) function:

kind regards

Dirk Schreckmann
Sheriff
Posts: 7023
...and you may want to consider that 0 raised to a negative power is undefined (and so perhaps throw an ArithmeticException in that case).

Ron Newman
Ranch Hand
Posts: 1056
Ditto for 0 to the power 0.
As x approaches 0, x^0 approaches 1 but 0^x approaches 0. So 0^0 has to be considered undefined.
[ November 03, 2002: Message edited by: Ron Newman ]