如题:

题目要求一个数的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.数值的整数次方相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

  7. java中数组的下标比较_【Java】 剑指offer(53-3) 数组中数值和下标相等的元素

    本文参考自<剑指offer>一书,代码采用Java语言. 题目 假设一个单调递增的数组里的每个元素都是整数并且是唯一的.请编程实现一个函数找出数组中任意一个数值等于其下标的元素.例如,在数 ...

  8. Leetcode刷题笔记——剑指offer II (一)【整数、数组、字符串、链表】

    目录 整数 剑指 Offer II 001. 整数除法 剑指 Offer II 002. 二进制加法 剑指 Offer II 003. 前 n 个数字二进制中 1 的个数 剑指 Offer II 00 ...

  9. 【LeetCode】剑指 Offer 67. 把字符串转换成整数

    [LeetCode]剑指 Offer 67. 把字符串转换成整数 文章目录 [LeetCode]剑指 Offer 67. 把字符串转换成整数 package offer;public class So ...

最新文章

  1. 404未找到是什么意思_为什么老遇上404 not found?你懂的
  2. JavaScript多文件下载
  3. iOS运行时-使用Runtime向Category中添加属性以及运行时介绍
  4. doubango简介
  5. 【英语学习】【Level 08】U04 What I love L1 What's on your playlist?
  6. springboot获取客户端发来的数据
  7. Monkey King
  8. mysql lock table阻塞读_MySQL的lock tables和unlock tables的用法【数据库锁表】
  9. 中国天气网 城市代号
  10. Nepxion Discovery(2) 全链路条件蓝绿发布
  11. 详细全面 :一份完整的数据分析师成长书单
  12. 三、动态构建GStreamer管道
  13. Sqldbx连接OracleX64位
  14. 没有公网IP,自建网站如何让外网访问?
  15. pandas制作图表
  16. confusion_matrix
  17. java openCV调用摄像头并以窗体显示出来
  18. 超视频时代,数据洪峰何解?
  19. 爬虫及数据分析--当当网
  20. 试用微软 必应输入法 功能简洁

热门文章

  1. jquery UI 后台图
  2. MySQL的转义字符“\”
  3. 一致性hash算法虚拟节点_Hash算法和一致性Hash算法
  4. 围棋棋盘上的波粒二象性
  5. 测量一组平行线的质量和频率m=n+1
  6. yum 安装PHP之后如何启动,如何用yum安装php_后端开发
  7. 离散信号处理的基本概念理解(第一章 离散序列和离散系统(全))
  8. leetcode 58. Length of Last Word 题解【C++/Java/Python/JS】
  9. 开源作品ThinkJDBC—一行代码搞定数据库操作
  10. 《OpenGL ES应用开发实践指南:Android卷》—— 2.2 不要从头开始