題目
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;
}
};