Pow(x, n) - LeetCode 50
来源:互联网 发布:sql查询字段长度限制 编辑:程序博客网 时间:2024/06/07 01:03
题目描述:
Implement pow(x, n).
Hide Tags Math Binary Search
分析:C++库中有pow(double x,int y),但是只针对指数为非负的。因此本题只需特殊考虑参数为负数的情况。
方法一:
1. 当指数为0时,幂为1;
2. 当指数为正数时,结果为pow();
3. 当指数为负数时,结果为pow()的倒数
备注:在考虑第2点的时候,可以稍微做出优化,得到方法二:因为乘数是对称的,因此可以先计算指数一半的幂,然后再相乘,当然,得分别处理指数为奇数和偶数的情况。
Implement pow(x, n).
Hide Tags Math Binary Search
分析:C++库中有pow(double x,int y),但是只针对指数为非负的。因此本题只需特殊考虑参数为负数的情况。
方法一:
1. 当指数为0时,幂为1;
2. 当指数为正数时,结果为pow();
3. 当指数为负数时,结果为pow()的倒数
备注:在考虑第2点的时候,可以稍微做出优化,得到方法二:因为乘数是对称的,因此可以先计算指数一半的幂,然后再相乘,当然,得分别处理指数为奇数和偶数的情况。
以下是C++实现代码:
/*///方法一///4ms/////*/class Solution {public: double myPow(double x, int n) { if(n == 0) return 1.0; if(n < 0) return 1.0/pow(x,-n); return pow(x,n); }};/方法二///////4ms////////*/class Solution {public: double myPow(double x, int n) { if(n == 0) return 1.0; if(n < 0) return 1.0/pow(x,-n); //return pow(x,n); else { double half = pow(x,n/2); if(n % 2 == 1 ) return half * half * x; else return half * half; } }};
0 0
- leetcode 50 : Pow(x, n)
- LeetCode 50: Pow(x, n)
- [leetcode 50] Pow(x, n)
- [Leetcode] 50 - Pow(x, n)
- [LeetCode 50]Pow(x, n)
- leetcode 50 Pow(x, n)
- leetcode || 50、Pow(x, n)
- [leetcode] #50 Pow(x,n)
- LeetCode-50 Pow(x, n)
- Pow(x, n) - LeetCode 50
- Leetcode(50):Pow(x, n)
- LeetCode---(50)Pow(x, n)
- Leetcode #50 Pow(x, n)
- LeetCode(50) Pow(x, n)
- leetcode 50: Pow(x, n)
- Leetcode#50||Pow (x, n)
- [Leetcode]#50 Pow(x, n)
- leetcode 50:Pow(x, n)
- Linux服务器安装jdk和tomcat
- hdu 1285(拓扑排序)
- 第十一周 项目一 存储班长信息的学生类(1)
- HDU 1.2.5 GPA(ACM step)
- DAG模型简单题
- Pow(x, n) - LeetCode 50
- 第十一周 阅读程序4 类的继承构造函数与析构函数调用的先后顺序
- uva465 overflow
- 日常所遇
- 文章标题
- UVA 10465 - Homer Simpson(贪心-考察代码能力哦)
- 第十二周项目四 点、圆的关系-(3)求点与圆心的连线在圆上的交点
- 狂欢过后是孤单
- 素数打表