package org.lza;
/**
* 数值的整数次方double pow(double base,int exponent)求base的exponent次方 不考虑大数 不准用库函数
* @author Joson
*
*/
public class AlgorithmRealizeByJava {
public static void main(String args[]){
Test();
}
public static double Pow(double base,int exponent){
if(exponent==0||base==0)//特殊情况处理
return 0;
int num=Math.abs(exponent);//取得指数的绝对值;
if(exponent==1)
return base;
double result=Pow(base,num>>1);//优化运算
result*=result;
if((exponent & 1) ==1)//判断是否是奇数
result*=base;
if(exponent<0)//判断指数是否是负数
return 1/result;
return result;
}
/**
* 测试函数
*/
private static void Test(){
System.out.println(Pow(0,1));
System.out.println(Pow(1,0));
System.out.println(Pow(2,8));
System.out.println(Pow(2,-4));
System.out.println(Pow(2,7));
}
}
本文介绍了一种使用Java实现的快速幂算法,该算法能够高效地计算任意实数的整数次幂,适用于不需要调用标准库函数的情况。文中提供了一个具体的算法实现,并通过测试函数验证了算法的有效性和准确性。
2616

被折叠的 条评论
为什么被折叠?



