package _2查找与排序2;
public class a的n次幂 {
public static void main(String[] args) {
int n=15;
int a=2;
int res1=pow1(a,n);
System.out.println(res1);
}
private static int pow1(int a, int n) {//lgn
// TODO Auto-generated method stub
if(n==0) {//重新递归传入a=2 ;n=7
return 1;
}
int res=a; //res=4 16 256
int ex=1;//指数
while ((ex<<1)<=n){// 尝试翻倍 ex<<1再翻倍 <=n n=15倍
res=res*res;
ex<<=1;//翻倍 2 4 8 还剩15-8=7
}
//不能翻
//差n-ex次方没有去乘到结果里面
return res * pow1(a, n - ex);//递归解决 7
//res=256
}
private static int pow(int a, int n) {//on级别
// TODO Auto-generated method stub
int res=1;
for(int i=0;i<n;i++) {
res*=a;//a==2
}
return res;
}
}
求a的n次幂
最新推荐文章于 2022-09-19 19:09:41 发布