剑指offer 面试题11 求整数次幂
2014-12-20 16:33
295 查看
</pre><p><pre name="code" class="cpp">#include <iostream> using namespace std; bool invalidinput=false; bool equal(double num1,double num2){ if((num1-num2<0.0000001)&&(num1-num2>-0.0000001)) return true; else return false; } double powcore(double base,unsigned int absexp){ double result=1; for(int i=0;i<absexp;++i){ result=result*base; } return result; } double powcore_bit(double base,unsigned int absexp){ double result=1; while(absexp!=0){ if(absexp&1) result*=base; absexp=absexp>>1; base=base*base; } return result; } double pow(double base, int exp){ invalidinput=false; if(equal(base,0.0)&&exp<=0){ invalidinput=true; return 0.0; } unsigned int absexp=(unsigned int) exp; if(exp<0) absexp=(unsigned int)(-exp); double result=powcore_bit(base,absexp); //double result=powcore(base,absexp); if(exp<0) result=1/result; return result; } int main(){ double base; int exp; //int a=(1<<31); //cout<<a<<'\n'; //cout<<(unsigned int)a<<'\n'; //cout<<(unsigned int)((1<<31)>>31); cin>>base>>exp; cout<<pow(base,exp); }
底数为0
指数为负
一个double数是否=0的判断
位操作求幂
相关文章推荐
- 剑指Offer面试题11(Java版):数值的整数次方
- 剑指offer之面试题11数值的整数次方
- 剑指offer 面试题11 数值的整数次方
- 剑指Offer面试题11:数值的整数次方 Java实现
- 剑指Offer 面试题11:数的整数次方(Leetcode50. Pow(x, n))【C库函数pow模拟】题解
- 剑指offer面试题11之求数值的整数次方
- 剑指Offer之面试题11:数值的整数次方
- 【剑指offer】面试题11:数值的整数次方
- 剑指offer_面试题11_数值的整数次方(*)
- 剑指offer面试题11 数值的整数次方 java实现
- 剑指offer--面试题11:数值的整数次方--Java实现
- 剑指offer面试题11 数值的整数次方
- C++剑指offer_面试题11_数值的整数次方(*)
- 剑指Offer面试题11数值的整数次方
- 【剑指Offer】面试题11:数值的整数次方
- 剑指Offer--面试题11 数值的整数次方
- 剑指offer-面试题11.数值的整数次方
- 剑指offer_面试题11 数值的整数次方_考察代码的完整性
- 剑指offer面试题[11]-数值的正整数次方
- 剑指offer——面试题11:数值的整数次方