书中方法:这道题要注意底数为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;
}
}

《剑指offer》面试题11 数值的整数次方 Java版的更多相关文章

  1. 剑指Offer:面试题11——数值的整数次方(java实现)

    题目描述: 实现函数double Power(double base, int exponent),求base的exponent次方,不得使用库函数,同时不需要考虑大数问题 思路:本题的重点考察内容是 ...

  2. 剑指offer_面试题11 数值的整数次方_考察代码的完整性

    测试通过代码: package t0825; public class Power { public static void main(String[] args){ System.out.print ...

  3. 剑指Offer - 九度1514 - 数值的整数次方

    剑指Offer - 九度1514 - 数值的整数次方2013-11-30 00:49 题目描述: 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponen ...

  4. 剑指offer(12)数值的整数次方

    题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 题目分析 这道题用传统的方法也可以做,只不过效率太低,这里我们用到快速幂的方法 ...

  5. 剑指offer十二之数值的整数次方

    一.题目 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 二.思路 1.传统方法计算,时间复杂度O(n) 2.递归方式计算,时间复杂度O ...

  6. 【剑指Offer】12、数值的整数次方

      题目描述:   给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方.   解题思路:   本题看似比较简单,是一个简单的指数运算,但需要完 ...

  7. 剑指offer编程题Java实现——面试题11数值的整数次方

    题目: 实现函数double power(double base,int exponent),求base的exponent次方.不得使用库函数,同时不需要考虑大数问题. 解题思路:最一般的方法实现数值 ...

  8. 剑指offer-面试题11.数值的整数次方

    题目:实现函数double Power(double base,int exponent),求base的 exponent次方.不得使用库函数,同时不需要考虑大数的问题. 这道题看似很简单: 然而需要 ...

  9. 剑指offer面试题5 从头到尾打印链表(java)

    注:(1)这里体现了java数据结构与C语言的不同之处 (2)栈的操作直接利用stack进行 package com.xsf.SordForOffer; import java.util.Stack; ...

随机推荐

  1. jQuery学习总结04-文档处理

    1.append(content|fn) 说明:向每个匹配的元素内部追加内容. 这个操作与对指定的元素执行appendChild方法,将它们添加到文档中的情况类似. content(要追加到目标中的内 ...

  2. 文献管理工具mendeley登录问题

    mendeley是一个文献管理工具,但是有一个让人诟病的地方是第一次登录,容易出现问题: 1.点击登录按钮后,报出红色警告 这个百度的问题中,经常提到的是这个,去点击红色错误的链接,通常应该是需要fa ...

  3. WAF防火墙学习

    正则解析神器 http://rick.measham.id.au/paste/explain.pl http://regexr.com/ http://regex101.com/ http://www ...

  4. 读书笔记二、pandas之DataFrame

    注:DataFrame的构造方法与Series类似,只不过同时接受一条一维数据源,每一条都会成为单独的一列. 注意,返回的Series拥有原DataFrame 相同的索引,且其name属性也已经被相应 ...

  5. html 头部设置

    https://juejin.im/post/5a4ae29b6fb9a04504083cac <head> <meta charset="UTF-8"> ...

  6. AIX下的ha高可用集群cluster

    安装ha软件 一.安装软件 最稳定的版本是5.4.0,优先安装稳定版本5.4 安装依赖于包base.data, cluster的man包安装失败原因是缺少base.data包 安装所有cluster. ...

  7. Pyhton---基础---递归

    2019-05-21 ------------------------------------------- 一. #类似于栈的先进后出模式def digui(num):    print(num)  ...

  8. Python---基础---dict_tuple_set

    2019-05-21 ------------------------ help(tuple) ------------------------- Help on class tuple in mod ...

  9. Java浏览器弹出下载框,多个文件导出压缩包

    项目里一直有这个功能,也一直没怎么注意,今天研究了一下 依据逻辑往下走: 首先是要下载的ajax的Java方法,只有返回值需要设定一下,其他的不用管: Map<String, Object> ...

  10. ubuntu + JetSonNano+OpenCV3.4.8

    首先强调一点,如果要配置darknet环境,不建议安装该版本!!! 安装opencv前,建议先检测自己的系统是否已经装过其他版本, 检查方式: (1)查看是否安装opencv库: pkg-config ...