x^n 的递归方法,针对 n 为偶数时进行了优化
2022-09-01 05:18:16
我需要使用Java编写一个名为power的递归方法,该方法采用双x和整数n并返回x^n。这是我到目前为止所拥有的。
public static double power(double x, int n) {
if (n == 0)
return 1;
if (n == 1)
return x;
else
return x * (power(x, n-1));
}
此代码按预期方式工作。但是,我正在尝试加倍努力并执行以下可选练习:
“可选挑战:当 n 为偶数时,您可以使用 x^n = (x^(n/2))^2 使此方法更有效。
我不确定当n为偶数时如何实现最后一个公式。我不认为我可以为此使用递归。我试图实现以下内容,但它也不起作用,因为我不能将双精度转换为int的幂。
if (n%2 == 0)
return (x^(n/2))^2;
有人能给我指出正确的方向吗?我觉得我错过了一些明显的东西。所有的帮助都很感激。