public class Pow {
/**
* 求x^n 时间复杂度O(log(n))
* @param x
* @param n
* @return
*/
public static long pow(int x,int n){
System.out.println("************");
if(n==1){
return x;
}
if(n%2==0){
long pow = pow(x,n/2);
return pow*pow;
}
if(n%2==1){
//注意,这里一定要使用临时变量来存储中间结果,以降低递归次数
long pow = pow(x, (n - 1) / 2);
return pow*pow*x;
}
return 1;
}
public static void main(String[] args) {
System.out.println(pow(2,9));
}
求一个数的N次方
最新推荐文章于 2022-09-16 15:10:55 发布