50. Pow(x, n)
快速幂
注意int范围为$[2^{31},2^{31} - 1]$,若n为最小值,变为正数时会溢出,所以先用longlong存n比较好
class Solution { public: double myPow(double x, int n) { int flag = 0; long long N = (long long)n; if (N < 0) flag = 1, N = -N; double ret = 1; while(N) { if(N & 1) ret *= x; x = x * x; N >>= 1; } return flag ? 1 / ret : ret; } };
自己选择的路,跪着也要走完。朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。