leetcode-Pow(x,n)

題目

https://leetcode-cn.com/problems/powx-n/

思路

快速冪,即使是32位整數,最多運行32次。注意指數n的最小值INT_MIN變成正的,int 存不下

AC代碼

class Solution {
public:
    double myPow(double x, int n) {
        double res = 1.00000;
        if(n == 0) return 1.00000;
        long long temp = abs(n); //最小的負數變成正的int存不下
        
        while (temp){
            if(temp&1) res = res * x;
            x = x*x;
            temp >>= 1;
        }
        if(n>0) return res;
        else return 1/res;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章