leetcode | Pow(x, n)
来源:互联网 发布:360急速浏览器 优化版 编辑:程序博客网 时间:2024/06/04 00:30
Pow(x, n) : https://leetcode.com/problems/powx-n/
Implement pow(x, n).
解析:
同剑指offer: 数值的整数次方 | Power
本题考查的关键点有:
- double 不能使用“==”
- 0 不能取负数次幂
- 任何数的 0 次幂为 1
- 1的任何次幂为1
- -1的偶数次幂为1,奇数次幂为-1
- 如何快速的计算一个数的整数次幂
注意: 关于基数为 1 或者 -1 时 也要单拿出来,对于n很大时,能显著减少计算次数
class Solution {public: double myPow(double x, int n) { if (equal(x, 0.0) && n < 0) return 0.0; if (equal(x, 0.0)) return 0.0; if (equal(x, 1.0) || n == 0) return 1.0; if (equal(x, -1.0)) return (n & 0x01) ? -1 : 1; double result = unsignedExponentPow(x, abs(n)); if (n < 0) result = 1.0 / result; return result; }private: double unsignedExponentPow(double x, int n) { if (n == 0) return 1.0; if (n == 1) return x; double result = unsignedExponentPow(x, n >> 1); result *= result; if (n & 0x01) result *= x; return result; } bool equal(double x, double y) { if (abs(x-y) < 0.00000001) return true; else return false; }};
0 0
- LeetCode: Pow(x, n)
- LeetCode Pow(x,n)
- [Leetcode] Pow(x, n)
- LeetCode: Pow(x, n)
- Leetcode: Pow(x,n)
- [LeetCode] Pow(x, n)
- [Leetcode] Pow(x,n)
- 【leetcode】Pow(x, n)
- [LeetCode]Pow(x, n)
- [leetcode]Pow(x, n)
- LeetCode-Pow(x, n)
- LeetCode - Pow(x, n)
- LeetCode | Pow(x, n)
- Pow(x, n) -leetcode
- 【leetcode】Pow(x, n)
- 【Leetcode】Pow(x, n)
- LeetCode Pow(x, n)
- Leetcode: Pow(x, n)
- MySQL DBA的基础面试题目
- Longest Palindromic Substring
- 红黑树
- py2exe打包Phython程序为exe程序
- Elasticsearch之servicewrapper安装
- leetcode | Pow(x, n)
- php使用ajax实现注册账号时判断账号是否已经存在
- 域名解析的记录类型:A/CNAME/MX/NS/TXT/AAAA/SRV/显性URL/隐性URL
- @import url("layout.css"); css 引入 css ------@charset "utf-8";
- Makefile学习
- C++中的链式操作
- Delete Node in a Linked List
- SDWebImage 内部运行机制
- linux mint 系统安装镜像 ISO 文件下载集合