剑指offer:面试题16. 数值的整数次方
题目:数值的整数次方
实现函数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. 数值的整数次方相关推荐
- 剑指offer面试题16. 数值的整数次方(二分法)
题目描述 实现函数double Power(double base, int exponent),求base的exponent次方.不得使用库函数,同时不需要考虑大数问题. 思路 详见链接 代码 cl ...
- 剑指offer面试题[11]-数值的正整数次方
题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. (自己方法可以通过-比较low)后期补充牛客网解法,先mark一下. clas ...
- 剑指offer(12)数值的整数次方
快速幂的算法太美了 对于if((b&1)==1)这是判断b是否为奇数: 例如:如果b=8(1000),即指数为8,进入循环时,b不是奇数,那么基数翻倍,现在base值为,然后b右移,此时b为4 ...
- 【重点 递归版】剑指offer——面试题16:反转链表
剑指offer--面试题16:反转链表 牛客网上有<剑指offer>的题目训练https://www.nowcoder.com/activity/oj 一个有关此题图文并茂的博客:http ...
- 面试题16: 数值的整数次方
/******************************************************************* *<剑指Offer--名企面试官精讲典型编程题>C ...
- [剑指offer]面试题16:反转链表
面试题16:反转链表 题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点.链表结点定义如下: struct ListNode {int value;ListNode *nex ...
- 剑指offer面试题[16]-反转链表
题目描述 输入一个链表,反转链表后,输出链表的所有元素. 解决与链表相关的问题总是有大量的指针操作,而指针操作的代码总是容易出错的的.很多面试官喜欢出链表相关的问题,就是想通过指针操作来考查应聘者的编 ...
- 【剑指offer-Java版】11数值的整数次方
不用库,实现pow()运算 很简单的题目,但是涉及到很多细节 比如 1) 结果非法或者出错的时候如何通知调用者: 可以采用返回特定值的方法-但是此处pow运算既可以返回正数 0 或者负数,所以此思路比 ...
- 【LeetCode】剑指 Offer 16. 数值的整数次方
[LeetCode]剑指 Offer 16. 数值的整数次方 文章目录 [LeetCode]剑指 Offer 16. 数值的整数次方 package offer;public class Soluti ...
最新文章
- 来,一起手撸一个简版 Redis(附源码)
- 朝聚眼科完成4亿元B轮融资,兰馨亚洲和阳光融汇投资...
- Android Retrofit使用教程(三):Retrofit与RxJava初相逢
- python整理excel数据-python操作excel的技巧整理
- VT-x,VT-d简介
- PON:EPON/GPON/10G PON/XG-PON/NG-PON2—Vecloud微云
- Altium Designer学习---如何进行SI仿真
- 智能高柜机器人_丰田公司推出新型助力机器人
- Java 中各种锁的介绍
- 通过一个具体的例子学习Threadlocal Test
- oracle 10g crs_stop -all 命令后遇到 UNKNOWN
- YUV 格式与 RGB 格式的相互转换公式总结(C++版)
- [渗透测试] DOS攻击
- python矩阵运算_python 矩阵运算
- android 自定义pickerview,Simple PickerView for Android - 这是一个高仿 IOS PickerView 控件的库...
- dnf台服服务端php,单机版:台服DNF游戏源码+搭建教程
- in module XXX. File is included in 4 contexts
- 怎么把文件夹名称提取到Excel?
- 游戏源代码是什么意思_什么是游戏
- (Animator详解一)mixamo动画导入Unity的一些配置
热门文章
- meson 中调用shell script
- ubuntu kylin 18.04 安装 Qt Creator 5.11
- 20172329 2017-2018-2 《程序设计与数据结构》实验五报告
- 2022-2028年中国工业大数据行业深度调研及投资前景预测报告
- 前端解决跨域问题的8种方案(最新最全)
- iOS 对UIImage进行的一些操作
- 简述nodejs、npm及其模块在windows下的安装与配置
- Java学习笔记45:Java 线程与主线程之间的变量关系
- MonoRail学习笔记一:一个小例子
- fcm算法的MATLAB实现,FCM算法的matlab程序(初步)