数值的整数次方
2016-06-21 01:24
274 查看
题目
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。解题
之前求2n−12^{n-1}的思想可以直接利用了public class Solution { public double Power(double base, int exponent) { // 指数是 0 if(exponent==0) return 1.0; // 底数是 0 if(base ==0) return 0; // 指数是 1 if(exponent == 1) return base; // 指数为 负 if(exponent <0) return 1.0/Power(base,-exponent); //指数是最小值得时候要单独考虑 if(exponent == Integer.MIN_VALUE){ return Power(base,exponent+1)/base; } double result = Power(base,exponent/2); result =result * result; // 奇数 if((exponent&0x01)==1) result = result * base; return result; } }
求第一个result时候可以改成循环形式
public class Solution { public double Power(double base, int exponent) { // 指数是 0 if(exponent==0) return 1.0; // 底数是 0 if(base ==0) return 0; // 指数是 1 if(exponent == 1) return base; // 指数为 负 if(exponent <0) return 1.0/Power(base,-exponent); //指数是最小值得时候要单独考虑 if(exponent == Integer.MIN_VALUE){ return Power(base,exponent+1)/base; } double result = 1.0; double tmp = base; for(int x =exponent;x>=1;x/=2){ if((x&0x01)==1){ result *=tmp; } tmp*=tmp; } return result; } }
相关文章推荐
- SSH:如何学
- 关于dorado中在配置sessionFactory中的packagesToScan的时候出现bean报错的情况
- Openstack组建部署 — Glance Install
- 9-1-顺序查找-查找-第9章-《数据结构》课本源码-严蔚敏吴伟民版
- 如果人生是一场戏,那笑得最后的为什么不能是我?
- 框架 day59 项目与项目管理
- 柚子的小小笔记本-Linux中的简单运算
- Codeforces Round #358 (Div. 2) D. Alyona and Strings
- [Java] 实例创建的步骤
- Web应用之LAMP源码环境部署
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- Linux基本操作
- [代码实例][Linux内核][模块]helloworld程序
- 9-0-查找表-查找-第9章-《数据结构》课本源码-严蔚敏吴伟民版
- Oracle数据库基础知识
- 二进制中1的个数
- iOS开发实战——CollectionView中cell的间距设置
- 关于ListView中EditText在软键盘弹出后的焦点问题
- mono develop-unity 编译脚本失败
- LintCode Backpack III(背包III)