我知道有三种方法可以使用变换和征服来简化问题。我正在尝试简化这个代码以提高效率。问题是,它已经在log n运行时。我想知道如何进一步简化这个解决方案?对于功率算法,它是Java中的递归分治方法,其中base = a和n =指数幂。所以基本上是x ^ n或A ^ n。我正在将它编译成codingbat,这就是为什么它的结构是它的原因(codingbat有一定的局限性)。有什么建议吗?
public int powerN(int base, int n) {
if (n==1)
return base;
else if (n==2)
return base*base;
else if (n%2==0)
return powerN(base*base, n/2);
else if (n%2==1)
return powerN(base, n-1)* base;
else
return 1;
}