实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。

示例 1:

输入: 2.00000, 10
输出: 1024.00000
示例 2:

输入: 2.10000, 3
输出: 9.26100
示例 3:

输入: 2.00000, -2
输出: 0.25000
解释: 2-2 = 1/22 = 1/4 = 0.25

说明:

-100.0 < x < 100.0
n 是 32 位有符号整数,其数值范围是 [−231, 231 − 1] 。

思路:二分法

需要注意的是写return powcorn(x,n/2)*powcorn(x,n/2);会超出时间限制

需要减少多余运算

定义变量a=powcorn(x,n/2),return  a*a

这样运算一次就够

代码:

class Solution {

public double myPow(double x, int n) {

int flag = 0;

if(n==0)

{

return 1;

}

else if(n<0){

n=-n;

flag=1;

}

double result = PowCorn(x,n);

if(flag==1)

{

result = 1/result;

}

return result;

}

public double PowCorn(double x,int n)

{

if(n==0)

{

return 1;

}

double a = PowCorn(x,n/2);

if(n%2==0)

{

return a*a;

}

else

{

return a*a*x;

}

}

}

【剑指offer】面试题16:数值的整数次方(Java)相关推荐

  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(12)数值的整数次方

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

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

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

  5. 面试题16: 数值的整数次方

    /******************************************************************* *<剑指Offer--名企面试官精讲典型编程题>C ...

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

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

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

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

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

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

  9. 【剑指offer-Java版】11数值的整数次方

    不用库,实现pow()运算 很简单的题目,但是涉及到很多细节 比如 1) 结果非法或者出错的时候如何通知调用者: 可以采用返回特定值的方法-但是此处pow运算既可以返回正数 0 或者负数,所以此思路比 ...

  10. 【LeetCode笔记】剑指 Offer 67. 把字符串转换成整数 (Java、字符串)

    文章目录 题目描述 思路 && 代码 二刷 题目描述 老阅读题了,感觉这道题有点类似写业务接口. 思路 && 代码 首先,把情况划分一下: 非正常值,直接给 0(这个实 ...

最新文章

  1. HSC86H SUMTOR 混合步进伺服电机驱动器
  2. C# - linq查询现有的DataTable
  3. mysql 内存表使用教程_MySQL的内存表的基础学习教程
  4. 这个深度学习工业质检工具,效率提升30%,质量提高80%
  5. 关于new 和delete的灾祸
  6. 从Jira到GitHub,详解Spring Framework问题跟踪系统的迁移过程
  7. C语言编程 开方,c编程中开方怎么表示
  8. Quartus仿真步骤
  9. 电工学习通:电路图符号知识大全
  10. 怎么用计算机算lnx,ln计算(log计算器在线)
  11. 【Android 逆向】ApkTool 工具使用 ( ApkTool 简介 | ApkTool 解包和打包 )
  12. FoxyProxy Standard与brupsuite配置
  13. 清除服务器传输文件记录,Sqlserver2012清除服务器连接记录(服务器名称历史记录清除)...
  14. google-auto之自动生成组件化文件
  15. 软件测试为什么要学python,资讯详情-用excel不好吗?为什么还要学python?-柠檬班-自动化测试-软件测试培训-自学官网...
  16. 点击按钮1 打开/关闭按钮2
  17. regexp_replace
  18. 用C语言开发NES游戏(CC65)03、VRAM缓冲区
  19. 汽车保养知识知多少?这篇文章让你秒懂
  20. 大公司上中台,钱没了...小公司上中台,公司没了

热门文章

  1. LeetCode 98. 验证二叉搜索树(中序遍历)
  2. python concat_python-pd.concat()不合并在同一索引上
  3. java 父子级json组装不用递归_2020面试阿里Java研发岗题库总结,想虐面试官不能错过的面试宝典...
  4. Android设置text按钮,安卓基础控件使用(TextView、Button、ImageView、EditText)
  5. 那些在家啃书自学算法的人,最后都找到工作了吗?
  6. 基于BERT的多模学习——VL-BERT篇
  7. Google、MS和BAT教给我的面试真谛
  8. 【错误修正】关于文章《小夕说,不了解动态空间增长的程序喵都是假喵》
  9. 阿里P8架构师谈:分布式、集群、负载均衡、分布式数据一致性的区别与关联
  10. 开源开放 | 开源大学在线实践数据集及知识图谱MOOPer(CCKS2021)