JAVA实现数值的整数次方(《剑指offern》)
来源:互联网 发布:linux cp 文件夹覆盖 编辑:程序博客网 时间:2024/06/03 11:53
题目:
给定一浮点数base和int类型的整数exponent。求base的exponent次方
牛客网题目截图:
解答:
public class Solution { public double Power(double base, int exponent) { // 当底数为0,指数为负数时,则抛出异常或者返回0.0 if (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; } else return 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==0 return 1;// 0的0次方 } while(exponent!=0){ if((exponent&1)==1) res*=curr; curr*=curr;// 翻倍 exponent>>=1;// 右移一位 } return n>=0?res:(1/res); }
0 0
- JAVA实现数值的整数次方(《剑指offern》)
- JAVA实现数值的整数次方(《剑指offer》)
- 数值的整数次方Java实现
- 【剑指offer】数值的整数次方-Java
- 数值的整数次方(java版)
- 剑指offer:数值的整数次方(java)
- 剑指:数值的整数次方
- 剑指Offer算法实现之十一:数值的整数次方
- 剑指offer:数值的整数次方 代码实现
- 剑指offer第十二题【数值的整数次方】c++实现
- 数值的整数次方[剑指offer]之python实现
- 剑指offer面试题11 数值的整数次方的Java代码实现
- 06 实现数值的整数次方
- 数值的整数次方代码实现
- 剑指offer--面试题11:数值的整数次方--Java实现
- 剑指Offer:面试题11——数值的整数次方(java实现)
- 剑指Offer面试题11:数值的整数次方 Java实现
- 剑指offer面试题11 数值的整数次方 java实现
- mac Xcode/iOS license
- java的一些原则
- Android L、M扩展支持包design中widget:TabLayout
- C语言学习笔记之指针
- NotePad++中的GBK乱码问题
- JAVA实现数值的整数次方(《剑指offern》)
- Linux电源管理(1)_整体架构
- php 获取时间
- XCODE报错-真机调试
- spring框架
- 导入excel数据
- Scala之旅-集合操作
- spring+hibernate多数据源切换のSessionFactory切换
- HTML学习记录<三> :创建电子邮件链接