funcmyPow(x float64, n int)float64 { if n < 0 { return1 / myPow(x, -n) }
res := 1.0 for n != 0 { if n & 1 != 0 { // n % 2 != 0 判断 n 二进制最右边的一位是否为 1,如果为 0 就相当于 res * (x^0) = res res = res * x } x = x * x n = n >> 1// n = n / 2 右移,相当于删除二进制的最右边一位 } return res }