面试题十六 :数值的整数次方

 

注意:考虑指数小于1的·情况:求绝对值的结果后再求倒数
a^n=a^(n/2)*a^(n/2) n为偶数
a^n=a^(n/2)*a^(n/2) *a n为奇数

 double  power1(double a, int  n){
                if( n==0) return 0;
                if( n==1) return a;
                double result   =  power1(a ,n>>1);
                result *=result;
                if( n&1==1)  result*=a;

                 return result;
        }

 

posted @ 2020-03-29 14:33  浪波激泥  阅读(98)  评论(0编辑  收藏  举报