Implement pow(xn).

我的做法就比较傻了。排除了所有的特殊情况(而且double一般不可以直接判断==),然后常规情况用循环来做。- -|||

直接用循环,时间复杂度就比较大。应该是用二分法来做。先计算pow(x,n/2)。然后再pow(x,n)=pow(x,n/2)*pow(x,n/2)

class Solution {
public:
double power(double x, int n){  if(n==0)  return 1;  double v = power(x,n/2);  if(n%2 == 0)  return v *v;  else  return v* v* x;
}double myPow(double x, int n) {if(n<0)  return 1.0 / power(x,-n);  else  return power(x,n);  }
};

#define EPSINON 0.00001
#define Max 2147483647
#define Min -2147483648
#define DBL_MAX 1.7976931348623159e+308 class Solution {
public:double myPow(double x, int n) {/*three special case*/if(n==1)return x;if(n==0)return 1.0;if(abs(x)==1.00000){if(n%2==0)return 1.0;else return x;}if(n>=Max){if(abs(x)<=EPSINON)return 0.0;elsereturn DBL_MAX;}if(n<=Min){if(abs(x)<=EPSINON)return DBL_MAX;elsereturn 0.0;}int size=abs(n);double tmp=x;for(int i=2;i<=size;i++){tmp*=x;}if(n>=0)return tmp;else return 1.0/tmp;}
};

转载于:https://www.cnblogs.com/LUO77/p/5645127.html

[Leetcode]50. Pow(x, n)相关推荐

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

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

  2. [Leetcode]141. Linked List Cycle

    题目: Given a linked list, determine if it has a cycle in it. Follow up: Can you solve it without usin ...

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

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

  4. LeetCode第50题思悟——Pow(x, n)(powx-n)

    LeetCode第50题思悟--Pow(x, n)(powx-n) 知识点预告 对边界值的处理意识: 对整数溢出的处理: 折半的思想 题目要求 实现 pow(x, n) ,即计算 x 的 n 次幂函数 ...

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

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

  6. Leetcode 50. Pow(x, n)

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

  7. i27岁转行java,JavaTM I/O 性能分析[转]

    JavaTM I/O 性能分析[转] 上一篇 / 下一篇  2008-07-30 13:04:44 / 个人分类:Zee的生活 这篇文章讨论和阐明了提供 JavaTM I/O 性能的多种设计问题,例如 ...

  8. 开源的悲哀——袁萌100天变身实录[3]

    承接上文: 开源的悲哀--袁萌100天变身实录[1] 开源的悲哀--袁萌100天变身实录[2] 2008年3月末:虚伪的文档格式权威 进入2008年3月,一切都回到了起跑线.但袁萌老师已经回不到原来的 ...

  9. 刷题汇总(一)leetcode 精选50题 JavaScript答案总结

    题目来源 腾讯精选练习(50 题) 信息更新时间:2019-3-11,因为要准备面前端,就用js做了遍来熟悉JavaScript这门语言,50道题均已提交通过. GitHub地址:https://gi ...

最新文章

  1. 【转】CPU位数、核数、个数
  2. 64位jvm的指针膨胀 和 数据补白
  3. java并发集合有哪些_java中常见并发集合有哪些?详细解析
  4. opencv2中访问像素的简单方法-自定义一个宏CV_MAT_ELEM2
  5. android fragment 退出程序,android – 应用程序在Fragment中单击后退按钮后关闭
  6. 利用URL拼接爬取获取有道翻译内容
  7. 和谐: OρenVΡN的UDP握手协议
  8. BZOJ 1798 题解
  9. 数据库课程设计报告——员工工资管理系统
  10. 基于hadoop的气象数据可视化分析
  11. 什么新东西值得学「GitHub 热点速览 v.22.29」
  12. 基于文本挖掘的情人节微信聊天记录情感分析
  13. Chrome IE 中QQ快速登录失效
  14. undertale人物_传说之下人物介绍
  15. XSS笔记-来源于个人思路构造以及网络分享
  16. 高等数学学习(1)-函数
  17. cf四大服务器位置,CF:从最初的42个服务器到现在的四大战区,穿越火线还能火多久?...
  18. 单位1-Mbps、Kbps、bps、kb、mb及其换算和区别
  19. 以小麦胚芽之名,智膳堂创造膳食升级新图景
  20. 优地、云迹、擎朗、普渡科技的服务机器人场景战争

热门文章

  1. 算法笔记-判断链表保存的字符串是否是回文
  2. NLP前路何在?Bengio等27位NLP顶级研究者有话说
  3. 《Zabbix-ICMP ping监控添加方法》-7
  4. 2017/5 JavaScript基础4--- 表达式、运算符
  5. 一个可以检测网络内主机类型的脚本
  6. 不可思议的#define
  7. 如何到达永生?揭示科学之美
  8. 艾伟:重提URL Rewrite(3):在URL Rewrite后保持PostBack地址
  9. 企业USB权限控制心得
  10. 鸿蒙系统平板界面,鸿蒙OS平板UI界面曝光:双Dock栏设计+超级终端互联功能