剑指offer_数值的整数次方
来源:互联网 发布:ubuntu 安装 ssh 编辑:程序博客网 时间:2024/05/17 07:08
实现函数double Power(double base , int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。
bool g_InvalidInput = false;bool equal(double num1,double num2){ if((num1 - num2 > -0.0000001) && (num1 - num2 < 0.0000001))//浮点型判断相等 { return true; } return false;}/*本段 : 乘积利用位运算替代除法,并且利用幂次方的性质double PowerWithUnsignedExponent(double base, unsigned int exponent){ if(exponent == 0) return 1; if(exponent == 1) return base; double result = PowerWithUnsignedExponent(base,exponent >> 1); result *= result; if(exponent&0x1 == 1)//如果是奇数要乘以底数本身 result *= base; return result;}*/double PowerWithUnsignedExponent(double base, unsigned int exponent){ double result = 1.0; for(int i=1;i<=exponent;++i) { result *= base; } return result;}double Power(double base, int exponent){ g_InvalidInput = false; if(equal(base,0.0) && exponent<0)//出现0的负指数幂,0做了除数,不合法 { g_InvalidInput = true; return 0.0; } unsigned int absExponent = (unsigned int)exponent;//用来存指数的绝对值 if(exponent < 0) absExponent = (unsigned int)(-exponent); double result = PowerWithUnsignedExponent(base,absExponent); if(exponent < 0) result = 1.0/result; return result;}
阅读全文
0 0
- 剑指offer_数值的整数次方
- 剑指Offer_面试题11_数值的整数次方
- 剑指offer_发散思维---数值的整数次方
- 剑指offer_面试题11_数值的整数次方(*)
- C++剑指offer_面试题11_数值的整数次方(*)
- 剑指:数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- Integer.valueOf(String) 方法之惑
- 博洁在线平台系统开发(模式定制)
- 学习日记22
- 搭建公司自己的Nuget服务器
- 第二十五天总结
- 剑指offer_数值的整数次方
- Android Studio下载及安装
- SPV、SPV节点和SPV钱包
- jms message组成和jsm selector详解(二)
- 【NOIP2003 提高组 T1 神经网络】
- 经典词嵌入与神经网络语言模型的对比研究
- 【组合数学】HDU5698[瞬间移动]题解
- listview多条目加载(网络请求)
- 《编程题》来自某游戏公司