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); I get same answer.
But i guess the best approach is to simply return the expresion return base1*power(base1,power1-1);
Thanks in advance --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 ]
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: