Leetcode——数值的整数次方

Posted Yawn,

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode——数值的整数次方相关的知识,希望对你有一定的参考价值。

1.题目

2. 题解

(1)暴力

  • 分为整数次方和负数次方两种情况
  • 然后果然超时了
class Solution {
    public double myPow(double x, int n) {
        double temp = 1.0;
        long b = n;
        
        while(b!=0.0){
            if(b>0.0){		//正数次方
                b--;
                temp = temp*x;
            }else{			//负数次方
                b++;
                temp = temp / x ;
            }
        }
        return temp;
    }
}

(2)快速幂

class Solution {
    public double myPow(double x, int n) {
        if(x == 0.0f) 
            return 0.0d;
        long b = n;
        double res = 1.0;
        if(b < 0) {
            x = 1 / x;
            b = -b;
        }
        while(b > 0) {
            if((b & 1) == 1)        //取余数 n % 2 等价于 判断二进制最右位n & 1
                res *= x;
            x *= x;
            b >>= 1;                // b = b / 2
        }
        return res;
    }
}

以上是关于Leetcode——数值的整数次方的主要内容,如果未能解决你的问题,请参考以下文章

菜鸟系列 Golang 实战 Leetcode —— 面试题16. 数值的整数次方

LeetCode面试题16. 数值的整数次方

LeetCode面试题16. 数值的整数次方

[LeetCode]剑指 Offer 16. 数值的整数次方

《剑指Offer》题目:数值的整数次方

剑指offer 12.数值的整数次方