剑指_16数值的整数次方
2017-12-03 16:38
405 查看
public class Solution { public double Power(double base, int exponent) { double result=0.0; if(equal(base,0.0)&&exponent<0){ throw new Exception("0的负数次幂无意义"); } if(equal(exponent,0)){ return 1.0; } if (exponent<0){ result=1.0/PowerCore(base,-exponent); }else{ result=PowerCore(base,exponent); } return result; } //判断两个double型数据是否相等 private boolean equal(double num1,double num2){ if(((num1-num2)>-0.0000001)&&((num1-num2)<0.0000001)){ return true; }else{ return false; } } //采用递归的方法求次幂 public double PowerCore(double base,int exponent){ if(exponent==0){ return 1.0; } if(exponent==1){ return base; } double result=PowerCore(base,exponent>>1);//右移一位表示除2 result*=result; if((exponent&0x1)==1){//与1按位与判断是否是奇数,0x1表示是十六位进制中的1 result*=base; } return result; } }
http://blog.csdn.net/jsqfengbao/article/details/47164537
相关文章推荐
- 剑指offer---16(数值的整数次方)
- 剑指Offer 面试题16:数值的整数次方 Java代码实现
- 【剑指offer】面试题16:数值的整数次方
- 剑指offer--面试题16:数值的整数次方
- 剑指Offer(第二版)面试题16:数值的整数次方
- 【剑指offer】面试题16:数值的整数次方
- 【剑指offer】面试题11:数值的整数次方
- 【剑指Offer面试编程题】题目1514:数值的整数次方---九度OJ
- 剑指Offer面试题:10.数值的整数次方
- 剑指offer--数值的整数次方
- 剑指offer第十二题【数值的整数次方】c++实现
- 【剑指offer】面试题11:数值的整数次方
- 剑指offer---数值的整数次方
- 剑指offer—数值的整数次方
- 【剑指Offer学习】【面试题11 :数值的整数次方】
- 剑指offer:数值的整数次方
- 剑指offer-数值的整数次方
- 《剑指offer》面试题16:数值的整数次方
- 剑指offer—数值的整数次方
- 剑指offer_数值的整数次方