zoukankan      html  css  js  c++  java
  • 50. Pow(x, n)

    description:

    Implement pow(x, n), which calculates x raised to the power n (xn).
    Note:
    Note:

    -100.0 < x < 100.0
    n is a 32-bit signed integer, within the range [−231, 231 − 1]
    

    Example:

    Example 1:
    
    Input: 2.00000, 10
    Output: 1024.00000
    
    Example 2:
    
    Input: 2.10000, 3
    Output: 9.26100
    
    Example 3:
    
    Input: 2.00000, -2
    Output: 0.25000
    Explanation: 2-2 = 1/22 = 1/4 = 0.25
    
    
    

    answer:

    class Solution {
    public:
        double myPow(double x, int n) {
            if (n == 0) return 1;
            double half = myPow(x, n/2);
            if (n%2 == 0) return half * half;
            if (n > 0) return half * half * x;
            else return half * half / x; //负指数的情况
        }
    };
    

    relative point get√:

    hint :

    采用递归的方法,就是比方说二的十次方可以分解为两个二的五次方相乘,不断递归,同时处理指数为负的情况。
    不能直接循环相乘是因为有时间限制。
    不能当成正的相乘然后再取反是因为负的31次方之后会有溢出,所以负的要每一步都进行处理,不能最后再处理。

  • 相关阅读:
    面向对象编程-介绍(python3入门)
    课堂作业03
    软件工程个人作业04
    团队介绍
    学习进度条
    课堂作业02
    学习进度条
    软件工程个人作业03
    课堂作业01
    软件工程个人作业02
  • 原文地址:https://www.cnblogs.com/forPrometheus-jun/p/11233686.html
Copyright © 2011-2022 走看看