zoukankan      html  css  js  c++  java
  • [LintCode] Pow(x, n) 求x的n次方

    Implement pow(x, n).

     Notice

    You don't need to care about the precision of your answer, it's acceptable if the expected answer and your answer 's difference is smaller than 1e-3.

    Example
    Pow(2.1, 3) = 9.261
    Pow(0, 1) = 0
    Pow(1, 0) = 1

    LeetCode上的原题,请参见我之前的博客Pow(x, n)

    解法一:

    class Solution {
    public:
        /**
         * @param x the base number
         * @param n the power number
         * @return the result
         */
        double myPow(double x, int n) {
            if (n == 0) return 1;
            double half = myPow(x, n / 2);
            if (n % 2 == 0) return half * half;
            else if (n > 0) return half * half * x;
            else return half * half / x;
        }
    };

    解法二:

    class Solution {
    public:
        /**
         * @param x the base number
         * @param n the power number
         * @return the result
         */
        double myPow(double x, int n) {
            if (n == 0) return 0;
            if (n == 1) return x;
            if (n == -1) return 1 / x;
            return myPow(x, n / 2) * myPow(x, n - n / 2);
        }
    };
  • 相关阅读:
    回溯算法之素数环
    回溯算法之迷宫问题
    回溯算法之0-1背包问题
    贪心算法之搬桌子问题
    贪心算法之背包问题
    动态规划之收集苹果
    动态算法
    c#数和二叉树
    c# 排序算法
    c#栈的习题2
  • 原文地址:https://www.cnblogs.com/grandyang/p/5679800.html
Copyright © 2011-2022 走看看