《剑指offer》c++版本 16.数值的整数次方
如题:
题目要求一个数的N次方,且不需要考虑大数,看似简单,for循环搞定。仔细详细,问题还挺多。比如,base为0或者指数为负,同时浮点数和0比较也是个问题。很多时候,面试官出的题目看似简单,但如果不加考虑,直接上手就写代码,很容易出现遗漏现象,在面试这种场合,很容易给面试官留下水平低下的映像,面试本来就是一次性的发挥,所以务必小心谨慎,拿到题目想到方案后,一定要考虑各种边界情况以及异常输入。
本题需要注意参数为0的情况下怎么处理以及怎么判断浮点数为0,通常对于整型可以直接使用"=="或者"!="来比较,但是,浮点数是有精度限制的,不能直接这样比,怎么比看下面的代码,也算是一个经典的考点。
本题c++编码如下:
//注意点:浮点数不能和0直接比较
//特殊情况:1. base为0. 2. 指数为0
//class Solution {
public:double Power(double base, int exponent) {bool flag = (exponent > 0) ? false : true;//base为0的话直接返回0if (fabs(base-0.0) <= __DBL_EPSILON__)return base;//指数为0返回1,为1返回自身if (exponent == 0)return 1.0;if (exponent == 1)return base;//指数为负的话取反。exponent = (exponent > 0) ? exponent : (0-exponent);double result = base;for (int i = 2; i <= exponent; i++){result *= base;}//如果指数为负,此时就倒数return (flag ? (1.0/result) : result); }
};
=============================================================================================
Linux应用程序、内核、驱动、后台开发交流讨论群(745510310),感兴趣的同学可以加群讨论、交流、资料查找等,前进的道路上,你不是一个人奥^_^。
《剑指offer》c++版本 16.数值的整数次方相关推荐
- 剑指offer面试题16. 数值的整数次方(二分法)
题目描述 实现函数double Power(double base, int exponent),求base的exponent次方.不得使用库函数,同时不需要考虑大数问题. 思路 详见链接 代码 cl ...
- 剑指offer(12)数值的整数次方
快速幂的算法太美了 对于if((b&1)==1)这是判断b是否为奇数: 例如:如果b=8(1000),即指数为8,进入循环时,b不是奇数,那么基数翻倍,现在base值为,然后b右移,此时b为4 ...
- 剑指offer面试题[11]-数值的正整数次方
题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. (自己方法可以通过-比较low)后期补充牛客网解法,先mark一下. clas ...
- 【剑指offer-Java版】11数值的整数次方
不用库,实现pow()运算 很简单的题目,但是涉及到很多细节 比如 1) 结果非法或者出错的时候如何通知调用者: 可以采用返回特定值的方法-但是此处pow运算既可以返回正数 0 或者负数,所以此思路比 ...
- 【LeetCode】剑指 Offer 16. 数值的整数次方
[LeetCode]剑指 Offer 16. 数值的整数次方 文章目录 [LeetCode]剑指 Offer 16. 数值的整数次方 package offer;public class Soluti ...
- 【重点 递归版】剑指offer——面试题16:反转链表
剑指offer--面试题16:反转链表 牛客网上有<剑指offer>的题目训练https://www.nowcoder.com/activity/oj 一个有关此题图文并茂的博客:http ...
- java中数组的下标比较_【Java】 剑指offer(53-3) 数组中数值和下标相等的元素
本文参考自<剑指offer>一书,代码采用Java语言. 题目 假设一个单调递增的数组里的每个元素都是整数并且是唯一的.请编程实现一个函数找出数组中任意一个数值等于其下标的元素.例如,在数 ...
- Leetcode刷题笔记——剑指offer II (一)【整数、数组、字符串、链表】
目录 整数 剑指 Offer II 001. 整数除法 剑指 Offer II 002. 二进制加法 剑指 Offer II 003. 前 n 个数字二进制中 1 的个数 剑指 Offer II 00 ...
- 【LeetCode】剑指 Offer 67. 把字符串转换成整数
[LeetCode]剑指 Offer 67. 把字符串转换成整数 文章目录 [LeetCode]剑指 Offer 67. 把字符串转换成整数 package offer;public class So ...
最新文章
- 404未找到是什么意思_为什么老遇上404 not found?你懂的
- JavaScript多文件下载
- iOS运行时-使用Runtime向Category中添加属性以及运行时介绍
- doubango简介
- 【英语学习】【Level 08】U04 What I love L1 What's on your playlist?
- springboot获取客户端发来的数据
- Monkey King
- mysql lock table阻塞读_MySQL的lock tables和unlock tables的用法【数据库锁表】
- 中国天气网 城市代号
- Nepxion Discovery(2) 全链路条件蓝绿发布
- 详细全面 :一份完整的数据分析师成长书单
- 三、动态构建GStreamer管道
- Sqldbx连接OracleX64位
- 没有公网IP,自建网站如何让外网访问?
- pandas制作图表
- confusion_matrix
- java openCV调用摄像头并以窗体显示出来
- 超视频时代,数据洪峰何解?
- 爬虫及数据分析--当当网
- 试用微软 必应输入法 功能简洁
热门文章
- jquery UI 后台图
- MySQL的转义字符“\”
- 一致性hash算法虚拟节点_Hash算法和一致性Hash算法
- 围棋棋盘上的波粒二象性
- 测量一组平行线的质量和频率m=n+1
- yum 安装PHP之后如何启动,如何用yum安装php_后端开发
- 离散信号处理的基本概念理解(第一章 离散序列和离散系统(全))
- leetcode 58. Length of Last Word 题解【C++/Java/Python/JS】
- 开源作品ThinkJDBC—一行代码搞定数据库操作
- 《OpenGL ES应用开发实践指南:Android卷》—— 2.2 不要从头开始