zoukankan      html  css  js  c++  java
  • LeetCode 50 Pow(x, n) (实现幂运算)

     
    Problem:实现幂运算即 pow(x,n)
     
    设形式为pow(x,n) = x^n,则有一下分支:
    当x==0时,返回0
    当n==0时,返回1
    当n<0时,(此时需要注意,不能直接将n = -n,因为最小负数变为相反数之后会超过int的最大范围)
         需要判断if( n == Integer.MIN_VALUE) 先对n++  然后n = -n ;  x = 1/x; return x * x * myPow( x*x, n/2 );//这里乘以两个x
         else n = -n;  x = 1/x; 
     
     
    最后结果 return (n%2==0)? myPow(x*x,n/2):x*myPow(x*x,n/2);
     
     
    参考代码: 
    package leetcode_50;
    
    
    /***
     * 
     * @author pengfei_zheng
     * 实现幂运算
     */
    public class Solution50 {
        public static double myPow(double x, int n) {
            if(x==0) return 0;
            if(n==0) return 1;
            if(n<0){
                    if( n == Integer.MIN_VALUE){
                        ++n;
                        n = -n;
                        x = 1/x;
                        return x * x * myPow( x*x, n/2 );
                    }
                    n = -n;
                    x = 1/x;
            }
            return (n%2==0)? myPow(x*x,n/2):x*myPow(x*x,n/2);
        }
        public static void main(String[]args){
                System.out.println(myPow(9,100));
        }
    }
     
  • 相关阅读:
    论文尾注后无法插入分节符
    实现java对象排序的三种方式
    java数组的定义方式
    Canvas
    正则xss
    mongoDB学习记录
    查找,学习,记录
    地址
    node实战学习纪录
    nodejs学习记录
  • 原文地址:https://www.cnblogs.com/zpfbuaa/p/6548296.html
Copyright © 2011-2022 走看看