题目:数值的整数次方

实现函数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

解题:

如果我们求一个数字的32次方。除了用32个这个数字相乘。
我们还可以,求2数字的平方。在平方的基础上,求4次方。4次方的基础上,求8次方。8次方的基础上,求16次方。16次方的基础上,求32次方。
那么我们一定会用到下面的公式

//运行时间:3ms
//占用内存:480K
class Solution {
public:bool g_InvalidInput = false;//设置输入变量标志位,True代表出现0的非正整数次方计算double Power(double base, int exponent) {g_InvalidInput = false;if((base==0.0)&&exponent<=0)//计算0的非正整数次方,标志为为true,返回0.0{g_InvalidInput = true;return 0.0;}double result = myPow(base,exponent);//获取base的真整数次方if(exponent<0) result = 1/result;//如果指数是负数 求结果的导数return result;}//计算base的正整数次方double myPow(double base, int exponent){ if(exponent==0)return 1;if(exponent==1)return base;double result =myPow(base,exponent/2);//可替换代码1:double result =PowerCompute(base,exponent>>1);用右移运算符代替除以2//可能会显示超出内存result *=result;if(exponent%2)//可替换代码2:if(exponent &0x1 ==1) 用位与运算符代替求余运算符号result *= base;return result;}
};

剑指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(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:反转链表

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

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

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

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

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

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

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

最新文章

  1. 来,一起手撸一个简版 Redis(附源码)
  2. 朝聚眼科完成4亿元B轮融资,兰馨亚洲和阳光融汇投资...
  3. Android Retrofit使用教程(三):Retrofit与RxJava初相逢
  4. python整理excel数据-python操作excel的技巧整理
  5. VT-x,VT-d简介
  6. PON:EPON/GPON/10G PON/XG-PON/NG-PON2—Vecloud微云
  7. Altium Designer学习---如何进行SI仿真
  8. 智能高柜机器人_丰田公司推出新型助力机器人
  9. Java 中各种锁的介绍
  10. 通过一个具体的例子学习Threadlocal Test
  11. oracle 10g crs_stop -all 命令后遇到 UNKNOWN
  12. YUV 格式与 RGB 格式的相互转换公式总结(C++版)
  13. [渗透测试] DOS攻击
  14. python矩阵运算_python 矩阵运算
  15. android 自定义pickerview,Simple PickerView for Android - 这是一个高仿 IOS PickerView 控件的库...
  16. dnf台服服务端php,单机版:台服DNF游戏源码+搭建教程
  17. in module XXX. File is included in 4 contexts
  18. 怎么把文件夹名称提取到Excel?
  19. 游戏源代码是什么意思_什么是游戏
  20. (Animator详解一)mixamo动画导入Unity的一些配置

热门文章

  1. meson 中调用shell script
  2. ubuntu kylin 18.04 安装 Qt Creator 5.11
  3. 20172329 2017-2018-2 《程序设计与数据结构》实验五报告
  4. 2022-2028年中国工业大数据行业深度调研及投资前景预测报告
  5. 前端解决跨域问题的8种方案(最新最全)
  6. iOS 对UIImage进行的一些操作
  7. 简述nodejs、npm及其模块在windows下的安装与配置
  8. Java学习笔记45:Java 线程与主线程之间的变量关系
  9. MonoRail学习笔记一:一个小例子
  10. fcm算法的MATLAB实现,FCM算法的matlab程序(初步)