实现power函数

来源:互联网 发布:淘宝网电子测平仪 编辑:程序博客网 时间:2024/06/08 16:49

题目描述   实现函数库中的 power(a,b)

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。

思路:

    考虑要全面;

底数和指数都是0,无意义。其中相等不能用==;

指数大于0,迭代乘;

小余0;


代码实现:

package com.mytest.mymain;public class MyPower001 {public static void main(String[] args) {MyPower001 myPower001=new MyPower001();System.out.println("Main:  "+myPower001.Power(2, -3));}    private boolean myequal(double a , double b){        if(a-b<0.0000001 && a-b>-0.0000001){            return true;        }else{            return false;        }    }        private double unsignpower(double base, int exponent){        double result=1.0;        for(int i=1;i<=exponent;i++){            result=result*base;        }        return result;    }        public double Power(double base, int exponent) {        double result=0.0;        if(myequal(base,0.0) && exponent<0)            return 0.0;        if(exponent<0){            result=1.0/unsignpower(base,-exponent);        }else if(exponent>0){           result=unsignpower(base,exponent);         }else if(exponent==0){            return 1.0;        }                            return result;  }        }

  改进:

       求指数有个快速迭代的公式:a^n=a^(n/2)*a^(n/2)  偶数    a^n=a^[(n-1)/2]*a^[(n-1)/2]  奇数

0 0
原创粉丝点击