题目:

给定一浮点数base和int类型的整数exponent。求base的exponent次方

牛客网题目截图:

解答:

public class Solution {public double Power(double base, int exponent) {// 当底数为0,指数为负数时,则抛出异常或者返回0.0if (equal(base, 0) && exponent < 0) {return 0.0;}// 先对指数进行取绝对值计算int absExponent = Math.abs(exponent);double result = powerWithExponent(base, absExponent);// 判断如果传入的指数是负数,进行取反,否则直接返回if (exponent < 0) {result = 1.0 / result;}return result;}// 计算数值的整数次方public double powerWithExponent(double base, int absExponent) {double result = 1.0;for (int i = 1; i <= absExponent; ++i) {result *= base;}return result;}// 判断两个double类型的数值是否相等public boolean equal(double num1, double num2) {if ((num1 - num2 > -0.0000001) && (num1 - num2 < 0.0000001)) {return true;} elsereturn false;}}

牛客网编译通过截图:

另附c++解答:

/*** 1.全面考察指数的正负、底数是否为零等情况。* 2.写出指数的二进制表达,例如13表达为二进制1101。* 3.举例:10^1101 = 10^0001*10^0100*10^1000。* 4.通过&1和>>1来逐位读取1101,为1时将该位代表的乘数累乘到最终结果。*/
public double Power(double base, int n) {double res = 1,curr = base;int exponent;if(n>0){exponent = n;}else if(n<0){if(base==0)throw new RuntimeException("分母不能为0"); exponent = -n;}else{// n==0return 1;// 0的0次方}while(exponent!=0){if((exponent&1)==1)res*=curr;curr*=curr;// 翻倍exponent>>=1;// 右移一位}return n>=0?res:(1/res);
}

JAVA实现数值的整数次方(《剑指offern》)相关推荐

  1. java中整数的整数次方_数值的整数次方 - 剑指 Offer 学习心得_教程_Java开发社区...

    数值的整数次方 代码实现: [java] view plaincopyprint? public class Test11 { /** * 实现函数double Power(double base, ...

  2. 【剑指offer - C++/Java】12、数值的整数次方

    在线题目链接:数值的整数次方 文章目录 1 题目描述 2 题目分析 2.1 方法1 循环 2.11 Java代码 2.12 C++代码 2.2 方法2 递归 2.21 Java代码 2.22 C++代 ...

  3. 剑指Offer #12 数值的整数次方(快速幂)

    题目来源:牛客网-剑指Offer专题 题目地址:数值的整数次方 题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 保证base和 ...

  4. 【附可运行代码】剑指 Offer 16. 数值的整数次方

    立志用最少的代码做最高效的表达 实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn).不得使用库函数,同时不需要考虑大数问题. 示例 1: 输入:x = 2.00000, n = 10 ...

  5. 【LeetCode】剑指 Offer 16. 数值的整数次方

    [LeetCode]剑指 Offer 16. 数值的整数次方 文章目录 [LeetCode]剑指 Offer 16. 数值的整数次方 package offer;public class Soluti ...

  6. 剑指offer——面试题11:数值的整数次方

    剑指offer--面试题11:数值的整数次方 Solution1:基本算法 累乘,时间复杂度为O(n) 要考虑全部情况:指数 < 0, == 0 和 > 0. 注意在 if-else if ...

  7. 剑指offer16. 数值的整数次方P110

    剑指offer16. 数值的整数次方P110 题目:实现函数double Power(double base, int exponent),求base的exponent次方.不得使用库函数,同时不需要 ...

  8. 《剑指offer》-- 数组中的逆序对、最小的K个数、从1到n整数中1出现的次数、正则表达式匹配、数值的整数次方

    一.数组中的逆序对: 1.题目: 数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出 ...

  9. 剑指offer:面试题16. 数值的整数次方

    题目:数值的整数次方 实现函数double Power(double base, int exponent),求base的exponent次方.不得使用库函数,同时不需要考虑大数问题. 示例 1: 输 ...

最新文章

  1. JVM基础面试题及原理讲解
  2. thinkphp框架细节
  3. 操作系统:ucore的部分Bug挑战练习
  4. Android UI(五)云通讯录项目之联系人列表,带侧滑选择,带搜索框
  5. unity 文本输入框_unity实战项目[我是食神黑长直]1星难度.含源码
  6. php面试专题---2、常量及数据类型考点
  7. Andorid之打包出现Proguard returned with erro code 1.See console解决办法
  8. php 清空一个数组_PHP工程师学Python数据类型
  9. 如何彻底禁用Chrome浏览器的缓存功能
  10. 在latex或者mathtype中如何输入花体,如拉式量L
  11. 数据科学和人工智能技术笔记 十一、线性回归
  12. Python中修饰器的定义与使用
  13. Web 前端开发精华文章集锦(jQuery、HTML5、CSS3)【系列十七】
  14. bug3-自定义层的注意事项
  15. python创建数据集_python 生成环形人工数据集
  16. BP算法的身份证号码识别
  17. Clang checker类总结
  18. 本地调试微信接口花生壳等域名被限制拉黑
  19. RISC-V MCU将常量定义到指定的Flash地址
  20. java el if_EL 表达式中条件运算符用于执行某种条件判断,它类似于 Java 语言中的 if-else 语句 。 ( )_学小易找答案...

热门文章

  1. WebApi的安全性及其解决方案
  2. jquery Syntax error, unrecognized expression:的解决方法
  3. 使用pip将Python包安装到不同的目录中?
  4. 如何在SQL中使用JOIN执行UPDATE语句?
  5. 机器学习经典算法详解及Python实现--元算法、AdaBoost
  6. 团队作业5-测试与发布(AIpha版本)
  7. IIS 6.0安全增强
  8. Error:No suitable device found: no device found for connection “System eth1″
  9. Java程序内存分析
  10. Oracle Varchar2 字段转成Clob字段