https://leetcode.com/problems/powx-n/

Implement pow(x, n).

必须考虑各种越界问题

参考 http://blog.csdn.net/linhuanmars/article/details/20092829

《剑指Offer》P90也出现了这题

#define DBL_MAX 1.7976931348623158e+308
class Solution
{
public:double myPow(double x, int n){if (n == 0)return 1.0;if (n == 1)return x;double res = 1.0;if (n < 0){if (x >= 1.0 / DBL_MAX || x <= 1.0 / -DBL_MAX)x = 1.0 / x;elsereturn DBL_MAX;if (n == INT_MIN){res *= x;n++;}}n = abs(n);int isNeg = n % 2 == 1 && x < 0 ? -1 : 1;x = fabs(x);while (n > 0){if ((n & 1) == 1){if (res > DBL_MAX/x)return DBL_MAX;res *= x;}x *= x;n >>= 1;}return isNeg*res;}
};
double myPow(double x, int n)
{if (n == 0)return 1.0;if (n == 1)return x;double half = myPow(x, n/2);double res = half*half;if (n % 2 == 0)return res;else if (n > 0)return res*x;elsereturn res / x;
}

LeetCode-50.Pow(x, n)相关推荐

  1. 【分治】LeetCode 50. Pow(x, n)

    LeetCode 50. Pow(x, n) Solution1:我的答案 偷鸡摸狗的做法 class Solution { public:double myPow(double x, int n) ...

  2. c语言的 pow函数是快速幂吗,leetcode 50. Pow(x, n)(快速幂)

    就是一个二分法快速幂. 但是需要注意的问题是这里是实数,而且n可能为负. int的范围是-2,147,483,648 至 2,147,483,647.如果为-2,147,483,648那么直接n=-n ...

  3. Leetcode 50. Pow(x, n)

    50. Pow(x, n) Total Accepted: 96891 Total Submissions: 348858 Difficulty: Medium Implement pow(x, n) ...

  4. LeetCode 50. Pow(x, n)(二分查找)

    文章目录 1. 题目 2. 二分查找 2.1 递归 2.2 循环 1. 题目 实现 pow(x, n) ,即计算 x 的 n 次幂函数. 示例 输入: 2.00000, 10 输出: 1024.000 ...

  5. leetCode 50.Pow(x, n) (x的n次方) 解题思路和方法

    Pow(x, n) Implement pow(x, n). 思路:题目不算难.可是须要考虑的情况比較多. 详细代码例如以下: public class Solution {public double ...

  6. leetcode 50. Pow(x, n) 快速幂

    好像没怎么快 #include <iostream> #include <math.h> using namespace std;class Solution {public: ...

  7. leetcode 50. Pow(x,n)

    题目 实现 pow(x, n) ,即计算 x 的 n 次幂函数. 解法 快速幂 利用二进制运算的性质 class Solution {public:double myPow(double x, int ...

  8. [Leetcode]50. Pow(x, n)

    Implement pow(x, n). 我的做法就比较傻了.排除了所有的特殊情况(而且double一般不可以直接判断==),然后常规情况用循环来做.- -||| 直接用循环,时间复杂度就比较大.应该 ...

  9. leetcode || 50、Pow(x, n)

    problem: Implement pow(x, n). Hide Tags Math Binary Search 题意:求x的n次幂 thinking: (1)最简单想到的是直观上的数学幂函数求法 ...

  10. 【LeetCode】50. Pow(x, n) (3 solutions)

    Pow(x, n) Implement pow(x, n). 按照定义做的O(n)肯定是TLE的. 利用这个信息:x2n = (xn)2 有个注意点,当n为负是,直接取反是不可行的. 由于int的表示 ...

最新文章

  1. 机器人瓦力船长机器人_警察“瓦力”来啦!机器人巡逻南京路 这样的它你喜欢吗?...
  2. Debian,Ubuntu下安装zsh和oh-my-zsh
  3. 皮一皮:别人都那么努力,你还有什么理由不努力...
  4. powerdesigner使用vba脚本创建物理模型的表和列
  5. OpenCV色彩校正模型MCC
  6. No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=armv7s, VALID_ARCHS=armv7 armv6)
  7. Qt:Qt实现飞秋拦截助手—Mac地址扫描器
  8. Spring数据分析思维课
  9. 路径规划之图规划算法(图片版)
  10. css中auto啥意思,CSS中各种auto值的作用总结
  11. 这份字节、阿里内部秘传的面经,被我搞到手了……
  12. “导航技术”学习笔记
  13. FileUtils工具类常用方法
  14. 创建包含法定节假日、工作日、周末的日历表(mysql、oracle通用)
  15. 关于iexplore.exe占用CPU100%的问题
  16. 正则化及正则化项的理解
  17. 服务器远程连接端口号修改
  18. Nginx配置443端口
  19. lob 索引 oracle,LOB字段相关概念(自动创建LOB索引段和重建索引方法)
  20. springboot基于web的摩托车销售系统的设计与实现毕业设计源码031706

热门文章

  1. 基于云信IM实现的文字+图片消息聊天功能
  2. Finger联合即构推出1V1在线钢琴陪练,切入线上音乐教育市场
  3. JAVA计算机毕业设计电商平台客流统计系统Mybatis+系统+数据库+调试部署
  4. Pr动画定格(自用)
  5. 三个你必须要记住的Pyinstaller打包命令——利用Python实现打包exe
  6. python协助远程摄像头拍摄
  7. mIRC 6.33 has been released! (July 18th 2008)
  8. vue全局加水印(除登录页面)
  9. 初级倍增算法(模拟+讲解)
  10. 正态总体参数的区间估计(应用概率统计 陈魁 清华大学出版社)