zoukankan      html  css  js  c++  java
  • 【Leetcode】【Medium】Pow(x, n)

    Implement pow(xn).

    解题思路:

    求浮点数的幂次方,注意可能为负数次幂;

    可以使用二分搜索的思想,当n为偶数时,x^n = x^(n/2) * x^(n/2),因此只需要求得一半的幂次方,将结果平方,就得到所求结果。

    解题步骤:

    1、递归最底层,n == 0 时,返回1;

    2、求出t = pow(x, n/2);

    3、判断n的奇偶性:

      a. 如果奇数,要判断n的符号,n为负数乘以1/x,n为正数时乘以x;

      b. 如果偶数,不需要多乘;同时,也不需要判断符号,因为符号形式已经包含在待乘的两个t中;

    代码:

     1 class Solution {
     2 public:
     3     double myPow(double x, int n) {
     4         if (n == 0) 
     5             return 1;
     6         double t = myPow(x, n / 2);
     7         if (n % 2) {
     8             return n < 0 ? 1/x*t*t : x*t*t;
     9         } else {
    10             return t*t;
    11         }
    12     }
    13 };
  • 相关阅读:
    2021-4-1 日报博客
    2021-3-31 日报博客
    2021-3-30 日报博客
    2021-3-29 日报博客
    2021-3-27 周报博客
    java
    周末总结六
    java
    java
    java
  • 原文地址:https://www.cnblogs.com/huxiao-tee/p/4771071.html
Copyright © 2011-2022 走看看