测试通过代码:
package t0825; public class Power { public static void main(String[] args){ System.out.println(Power(2.5,3)); System.out.println(Power(0.00000001,3)); System.out.println(Power(0.00000001,-3)); System.out.println(Power(2,-3)); System.out.println(Power(10,10)); } /* * 大数问题 */ public static double Power(double base, int exponent) { double result=1.0; if(equal(base,0.0) && exponent<0){ //当基于为零时,多少次方都为零 return 0.0; } int absExponent=0; if(exponent<0) absExponent=-exponent; //如果为负数,取反求倒数; else absExponent=exponent; result = PowerAlthmn(base,absExponent); if(exponent<0) result = 1.0/result; return result; } public static boolean equal(double num1,double num2){ if((num1-num2)>-0.0000001 && (num1-num2<0.0000001)) return true; else return false; } public static double PowerAlthmn(double base,int exponent){ double result1=1.0; while(exponent!=0){ result1=result1*base; exponent--; } return result1; } }