写点什么

LeetCode 题解:50. Pow(x, n),暴力法,JavaScript,详细注释

用户头像
Lee Chen
关注
发布于: 2020 年 10 月 23 日
LeetCode题解:50. Pow(x, n),暴力法,JavaScript,详细注释

原题链接:https://leetcode-cn.com/problems/powx-n/



解题思路:



  1. 对该题不了解的同学,可以参考一下维基百科中对的介绍。

  2. 求x的n次幂,只要将x乘n次即可。

  3. 求x的-n次幂,只要将1除以x n次即可。

  4. x为0、1、-1时,n次幂都为固定值,可以直接返回响应结果。

  5. n为-2147483648时会超时,直接返回0即可。



/**
* @param {number} x
* @param {number} n
* @return {number}
*/
var myPow = function (x, n) {
// 0和1的n次幂都为其本身
if (x === 0 || x === 1) {
return x;
}
// 负1的偶数幂为1,奇数幂为-1
if (x === -1) {
return n % 2 ? -1 : 1;
}
// 特殊处理会超时的Case
// 或者可以写成n === -0x80000000
if (n === -2147483648) {
return 0;
}
let result = 1; // 初始值为1
const len = Math.abs(n); // 需要计算的次数,n有可能为负,因此要取绝对值
for (let i = 0; i < len; i++) {
result =
n > 0
? result * x // n>0时即乘n次
: result / x; // n>0时即/除n次
}
return result;
};



发布于: 2020 年 10 月 23 日阅读数: 24
用户头像

Lee Chen

关注

还未添加个人签名 2018.08.29 加入

还未添加个人简介

评论

发布
暂无评论
LeetCode题解:50. Pow(x, n),暴力法,JavaScript,详细注释