给出double底数求int的次方的递归和循环方法

来源:互联网 发布:windows可以开发ios吗 编辑:程序博客网 时间:2024/04/27 20:29
/*     * base的exponent次方,这里要考虑exponent的正负问题     * 我们用两种方法来解决,递归和循环     */    public static double Power(double base, int exponent) {        //若指数为负数        if(exponent < 0)        {            double sum = 1/base;            //指数-2为递归出口            if(exponent == -2)            {                return sum = sum * 1 / base;            }            else            {                //指数+1递归                return sum * Power(base,exponent + 1);            }        }        //若指数为0,返回1        if(exponent == 0)        {            return 1;        }        else {            //指数为正的递归            double sum = base;            if (exponent == 2) {                return sum * base;            } else {                return sum * Power(base, exponent - 1);            }        }    }    /*     * 循环处理     */    public static double Power2(double base,int exponent)    {        //若指数为0,返回1        if(exponent == 0)        {            return 1;        }        //若指数小于0        if(exponent < 0)        {            //base置为倒数            base = 1 / base;            double sum = 1;            for (int i = 0; i < -exponent; i++) {                sum = sum * base;            }            return sum;        }        //若指数大于0        else        {            double sum = 1;            for (int i = 0; i < exponent; i++) {                sum = sum * base;            }            return sum;        }    }
0 0