剑指offer:数值的整数次方
2016-04-21 17:33
405 查看
方法一:
见幂模class Solution { public: double Power(double base, int exponent) { if(base==0 && exponent<0){ throw new std::logic_error("error input"); } if(exponent==0){ return 1; } if(exponent==1){ return base; } bool minus=false; if(exponent<0){ minus=true; exponent=-exponent; } double res=1.0; while(exponent>0){ if(exponent & 1){ res*=base; } base*=base; exponent>>=1; } if(minus){ res=1/res; } return res; } };
方法二:
class Solution { public: double Power(double base, int exponent) { if(exponent==-1){ return 1/base; } if(exponent==0){ return 1; } if(exponent==1){ return base; } double res=Power(base,exponent>>1); res*=res; if(exponent & 0x1==1){ res*=base; } return res; } };
相关文章推荐
- 数据存储之SharedPreferences(系统偏好设置)(一)
- 将DataTable转换成json字符串
- "Content-Type" content="text/html; charset=utf-8"中content="text/html是啥意思呢?
- JavaScript的type属性等于text/html 例子
- 12种优秀JavaScript MVC框架之比较
- HTML中target属性解析
- 黄聪: 50 个 Bootstrap 插件
- 使用HTML5 Web存储的localStorage方式进行编写一个Web页面。
- 使用jackson进行json数据格式转换
- 邮箱格式验证的js
- How to delete a node in BST?
- Angularjs基础(六)
- pjsua视频呼叫后收不到对方的视频
- JSON压缩:JSONMinify
- 使用Yeoman搭建 AngularJS 应用 (12) —— 让我们搭建一个网页应用
- js为数字添加千位分隔符
- js 四舍五入保留二位小数
- 我们应当怎样学习HTML和CSS
- js模拟用户多次点击下载文件
- nodejs中exports与module.exports的区别