题目描述

给定一个double类型的浮点数baseint类型的整数exponent。求baseexponent次方。

保证baseexponent不同时为0

思路分析

double类型浮点数ne次方,这里需要考虑e是正数、负数、0几种情况,当e0时结果为1,如果e为负数取倒数就可以了,所以实现就很简单了,循环乘以n再根据e的正负来判断是否取倒数就可以了;

代码实现

public class Solution10 {public double Power(double base, int exponent) {return Math.pow(base,exponent);}public double PowerV2(double base, int exponent) {if (base == 0.0) {return 0;}if (exponent == 0) {return 1;}boolean isBaseNegative = false;if (base < 0) {base = Math.abs(base);isBaseNegative = true;}boolean isExponentNegative = false;if (exponent < 0) {isExponentNegative = true;exponent = Math.abs(exponent);}double res = 1;for (int i = 1; i <= exponent; i++) {if (isExponentNegative) {res *= 1 / base;}else{res *= base;}}return isBaseNegative ? (exponent % 2 == 0 ? res : -res) : res;}public static void main(String[] args) {Solution10 solution10 = new Solution10();System.out.println(solution10.PowerV2(2, 3));System.out.println(solution10.PowerV2(-2, 3));System.out.println(solution10.PowerV2(2, -3));System.out.println(solution10.Power(2, -3));System.out.println(solution10.Power(5.5, 2));System.out.println(solution10.Power(-5.5, 2));System.out.println(solution10.PowerV2(5.5, 2));System.out.println(solution10.PowerV2(-5.5, 2));}
}

欢迎关注南阁公众号

剑指offer-面试题16:数值的整次方相关推荐

  1. 剑指offer面试题16. 数值的整数次方(二分法)

    题目描述 实现函数double Power(double base, int exponent),求base的exponent次方.不得使用库函数,同时不需要考虑大数问题. 思路 详见链接 代码 cl ...

  2. 剑指offer面试题[11]-数值的正整数次方

    题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. (自己方法可以通过-比较low)后期补充牛客网解法,先mark一下. clas ...

  3. 【重点 递归版】剑指offer——面试题16:反转链表

    剑指offer--面试题16:反转链表 牛客网上有<剑指offer>的题目训练https://www.nowcoder.com/activity/oj 一个有关此题图文并茂的博客:http ...

  4. [剑指offer]面试题16:反转链表

    面试题16:反转链表 题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点.链表结点定义如下: struct ListNode {int value;ListNode *nex ...

  5. 剑指offer面试题[16]-反转链表

    题目描述 输入一个链表,反转链表后,输出链表的所有元素. 解决与链表相关的问题总是有大量的指针操作,而指针操作的代码总是容易出错的的.很多面试官喜欢出链表相关的问题,就是想通过指针操作来考查应聘者的编 ...

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

    快速幂的算法太美了 对于if((b&1)==1)这是判断b是否为奇数: 例如:如果b=8(1000),即指数为8,进入循环时,b不是奇数,那么基数翻倍,现在base值为,然后b右移,此时b为4 ...

  7. 剑指offer——面试题54:表示数值的字符串

    剑指offer--面试题54:表示数值的字符串 参考网址:https://www.nowcoder.com/profile/9717187/codeBookDetail?submissionId=15 ...

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

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

  9. 剑指offer 面试题三 找出数组中重复的数字

    1 import org.junit.Test; 2 3 import java.util.Arrays; 4 import java.util.HashSet; 5 6 public class D ...

  10. 剑指offer面试题[64]-数据流中的中位数

    题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值.如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值. 分 ...

最新文章

  1. 本、硕、博的最大区别是什么?
  2. Shell printf 命令
  3. 王道计算机考研 计算机组成原理 第二章、数据的表示和运算
  4. mysql query结果集_如何解决PHP使用mysql_query查询超大结果集超内存问题
  5. 批处理命令set截取字符详解
  6. 2016 排行前20 的编程语言
  7. 部门树形结构,使用Treeview控件显示部门
  8. mysql用户和权限备份_备份MySQL用户和权限
  9. 互联网产品 从设计到运营 这中间提高须要关注的站点
  10. 43 FI配置-财务会计-固定资产-一般评估-定义折旧范围
  11. Dubbo基础知识总结
  12. Centos 7 设置tomcat开机自启动
  13. 搭建 Sql Server 2008 R2 Failover Cluster
  14. AD20使用之用封装创建向导创建封装
  15. 使用Mac系统来进行Java编程
  16. 京东评价系统海量数据存储设计
  17. android解析json数据格式,Android编程解析Json格式数据的方法
  18. 互联网金融VS区块链金融
  19. Cartopy画地图第七天(python画浮雕地图和比例尺)
  20. linux mtd 命令,Linux MTD介绍

热门文章

  1. 无人驾驶中识别颜色并跟踪的优化(加入PID算法控制)
  2. 才40多岁怎么就老花眼了呢?老花眼可以戴隐形眼镜吗?
  3. 5G NR BAND 频段 带宽
  4. 邮寄信封地址打印办法
  5. 在校大学生谈项目管理
  6. C++资源之不完全导引(完整版)
  7. Python-cp950‘ codec can‘t encode
  8. Tensorflow2.0:实战LeNet-5识别MINIST数据集
  9. PCT专利申请流程有哪些?
  10. 八个方面分析汉诺塔问题