书中方法:这道题要注意底数为0的情况。double类型的相等判断。乘方的递归算法。

	public double power(double base, int exponent){
//指数为0
if(exponent == 0){
return 1.0;
}
//底数为0
if(isEqual(base, 0.0)){
return 0.0;
} int absExponent = exponent;
if(exponent < 0)absExponent = -absExponent; double result = unsignedPower(base, absExponent); if(exponent<0){
result = 1.0/result;
} return result;
}
//求乘方正常思路
private double unsignedPower(double base, int absExponent){
double result = 1.0;
for(int i=1; i<=absExponent; i++){
result *= base;
}
return result;
}
//用递归的方法求乘方
private double unsignedPower2(double base, int absExponent){
if(absExponent == 1)return base;
double result = unsignedPower2(base, absExponent>>1);
result *= result;
if((absExponent & 0x01) == 1){
result *= base;
}
return result;
}
//double类型判断相等
private boolean isEqual(double num1, double num2){
if((num1 - num2)>-0.0000001 && (num1 - num2)<0.0000001){
return true;
}else{
return false;
}
}

最新文章

  1. iOS之2016面试题三
  2. SQL DDL
  3. TCP/IP详解系列 --- 概念总结01
  4. C# winform生成天气预报(转)
  5. Java中length,length(),size()区别
  6. 2.2&hellip;&hellip;测试
  7. Android:控件GridView的使用
  8. 2015 Multi-University Training Contest 5
  9. [Redux] Extracting Presentational Components -- Todo, TodoList
  10. sql server 2008 学习笔记
  11. MySQL存储过程 CASE语句
  12. 阿里云redis映射到阿里云服务器
  13. 杰克.多西 twitter创始人 必做清单和不必做清单
  14. VS没办法调试,直接退出,报错:1. 使用调试生成配置或禁用调试选项“启用‘仅我的代码’”。。。
  15. nginx安装扩展 sub_filter&amp;http_ssl_module
  16. C#里,如何模拟DataGridView里的一个Cell的Click事件。
  17. 深入浅出DOM基础——《DOM探索之基础详解篇》学习笔记
  18. DB2问题记录本
  19. C# 判断是否是节假日
  20. 【JAVA语法】03Java-继承性

热门文章

  1. layui在当前页面弹出一个iframe层,并改变这个iframe层里的一些内容
  2. #1062 - Duplicate entry &#39;0&#39; for key &#39;PRIMARY&#39;—— mysql的小问题
  3. 使用Jmeter聚合报告生成对比图表
  4. numpy中tile的用法
  5. fiddler 手机抓包,CS端抓包 使用记录
  6. qt05 音乐播放器
  7. Sass @warn
  8. 多线程、同步实现方法及Error和Exception的区别与联系
  9. 【leetcode】813. Largest Sum of Averages
  10. Task9.Attention