递归快速幂

代码很简单:
/*** @description: 递归快速幂* @return {*} 幂运算的结果* @param {*} a 底* @param {*} n 幂*/function pow(a, n){if (n == 0)return 1;else if (n % 2 == 1)return pow(a, n - 1) * a;else{let temp = pow(a, n / 2);return temp * temp;}}
非递归快速幂

/*** @description: 非递归快速幂* @return {*} 幂运算的结果* @param {*} a 底* @param {*} n 幂*/function pow(a, n) {let ans = 1;while (n) {// 如果n的当前末位为1if (n & 1) {ans = ans * a;}a = a * a;n = n >> 1;}return ans;}
