剑指offer-数值的整数次方
2017-08-29 01:40
411 查看
public class 面试题16 { public static double Power(double base, int exponent) throws Exception { double result = 0.0; if (base == 0.0 && exponent < 0) throw new Exception("非法输入"); boolean abs = false; if (exponent < 0) { abs = true; exponent = Math.abs(exponent); } result=PowerWithUnsignExponent(base, exponent); if (abs==true) { result=1.0/result; } return result; } public static double PowerWithUnsignExponent(double base, int exponent){ double result=1,b=base; while (exponent!=0) { if((exponent&1)!=0) result*=b; b*=b; exponent>>=1; } return result; } }
要考虑特殊指数负值,零值的特殊情况
利用快速幂计算乘方能将时间复杂度降为O(logn)
用循环代替递归,减少对栈的消耗
相关文章推荐
- 剑指Offer面试题11(Java版):数值的整数次方
- 剑指Offer面试题:10.数值的整数次方
- 剑指offer面试题[11]-数值的正整数次方
- 剑指offer---数值的整数次方
- 剑指offer--数值的整数次方
- 剑指Offer学习总结-数值的整数次方
- 剑指offer 11 数值的整数次方
- 剑指offer--(14)数值的整数次方
- 剑指offer——面试题11:数值的整数次方
- 剑指offer之数值的整数次方
- 剑指offer--面试题16:数值的整数次方
- 剑指Offer面试题11(Java版):数值的整数次方
- 剑指offer面试题11 数值的整数次方 java实现
- 剑指offer(十二,十三) 数值的整数次方,调整数组顺序使奇数位于偶数前面
- 剑指Offer 11 数值的整数次方
- 【剑指offer】数值的整数次方-Java
- 剑指offer-算法题练习:part12 数值的整数次方
- 剑指Offer之数值的整数次方
- 【剑指offer】数值的整数次方
- 【剑指Offer面试题】 九度OJ1514:数值的整数次方