public class Pow {
/**
*
* 计算a的n次方
* @param a 基数
* @param n 指数
* @return 当输入不合法时返回-1,否则返回a的n次方
*/
public double pow(int a,int n){
if(a == 0 && n < 0){
return -1;
}
if(n == 0 && a != 0){
return 1;
}
if(n == 1){
return a;
}
//n是否为负数
boolean nMinus = false;
if(n < 0){
nMinus = true;
n = -n;
}
double result = 1;
result = pow(a,n/2) * pow(a,n/2);
if((n & 1) != 0){
result = result * a;
}
if(nMinus == true){
result = 1/result;
}
return result;
}
public static void main(String[] args) {
Pow p = new Pow();
System.out.println(p.pow(3,3));
}
}
计算数值的整数次方
最新推荐文章于 2022-05-02 08:00:00 发布