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