《剑指offer》面试题11 数值的整数次方 Java版
2024-09-05 23:34:35
书中方法:这道题要注意底数为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;
}
}
最新文章
- iOS之2016面试题三
- SQL DDL
- TCP/IP详解系列 --- 概念总结01
- C# winform生成天气预报(转)
- Java中length,length(),size()区别
- 2.2&hellip;&hellip;测试
- Android:控件GridView的使用
- 2015 Multi-University Training Contest 5
- [Redux] Extracting Presentational Components -- Todo, TodoList
- sql server 2008 学习笔记
- MySQL存储过程 CASE语句
- 阿里云redis映射到阿里云服务器
- 杰克.多西 twitter创始人 必做清单和不必做清单
- VS没办法调试,直接退出,报错:1. 使用调试生成配置或禁用调试选项“启用‘仅我的代码’”。。。
- nginx安装扩展 sub_filter&;http_ssl_module
- C#里,如何模拟DataGridView里的一个Cell的Click事件。
- 深入浅出DOM基础——《DOM探索之基础详解篇》学习笔记
- DB2问题记录本
- C# 判断是否是节假日
- 【JAVA语法】03Java-继承性
热门文章
- layui在当前页面弹出一个iframe层,并改变这个iframe层里的一些内容
- #1062 - Duplicate entry &#39;0&#39; for key &#39;PRIMARY&#39;—— mysql的小问题
- 使用Jmeter聚合报告生成对比图表
- numpy中tile的用法
- fiddler 手机抓包,CS端抓包 使用记录
- qt05 音乐播放器
- Sass @warn
- 多线程、同步实现方法及Error和Exception的区别与联系
- 【leetcode】813. Largest Sum of Averages
- Task9.Attention