- 论坛徽章:
- 0
|
public class PowerCalc
{
public static void main(String[] args)
{
double x = 5.0;
System.out.println(x + " to the power 4 is " + power(x,4));
System.out.println("7.5 to the power 5 is " + power(7.5,5));
System.out.println("7.5 to the power 0 is " + power(7.5,0));
System.out.println("10 to the power -2 is " + power(10,-2));
}
// Raise x to the power n
static double power(double x, int n)
{
if(n > 1)
return x*power(x, n-1); // Recursive call
else if(n < 0)
return 1.0/power(x, -n); // Negative power of x
else
return n == 0 ? 1.0 : x; // When n is 0 return 1, otherwise x
}
}
最后的结果是:
5.0 to the power 4 is 625.0
7.5 to the power 5 is 23730.46875
7.5 to the power 0 is 1.0
10 to the power -2 is 0.01
为什么会是这样的结果,我想他们的结果应该都是1.0,在power自身调用自身时,他应该没有返回值,直到最后n的值到0的时候才有返回值?但是每次返回一个自身x的值后再*以以前的值,不明白,那们大大能给指点一下吗???谢谢先!!! |
|