题目

描述

  • 实现 pow(x, n),即计算x的n次幂函数。

    示例

    示例1:

    1. 输入: 2.00000, 10
    2. 输出: 1024.00000

    示例2:

    1. 输入: 2.10000, 3
    2. 输出: 9.26100

    示例3:

    1. 输入: 2.00000, -2
    2. 输出: 0.25000
    3. 解释: 2-2 = 1/22 = 1/4 = 0.25

    说明

  • -100.0 < x < 100.0

  • n 是 32 位有符号整数,其数值范围是 [−2, 2− 1] 。


解答(自写非最优)

  1. /**
  2. * @param {number} x
  3. * @param {number} n
  4. * @return {number}
  5. */
  6. var myPow = function(x, n) {
  7. if (n === 0 || x === 1) {
  8. return 1;
  9. }
  10. let a = x;
  11. let nn = n > 0? n : -n;
  12. let i = 2;
  13. while(i < nn) {
  14. i = i * 2;
  15. x = x * x;
  16. }
  17. i /= 2;
  18. for (let j = nn - i; j > 0; j--) {
  19. x = x * a;
  20. }
  21. return n > 0 ? x : (1 / x);
  22. };