NO50. Pow(x, n)
#<<(向左位移) 针对二进制,转换成二进制后(32位)向左边移动n位 ,相当于这个整数乘以2的n次方; #>>(向右位移) 针对二进制,转换成二进制后(32位)向右移动n位,相当于这个整数除以2的n次方,正数高位补0, 正数高位补1 class Solution(object): def myPow(self, x, n): """ :type x: float :type n: int :rtype: float """ if n == 0: return 1 elif n < 0: x = 1 / x n = -n ans = 1 while n: if n % 2: ans *= x n >>= 1 x *= x return ans
#偷巧法:能通过但不建议
import math class Solution: def myPow(self, x: float, n: int) -> float: return pow(x,n)

浙公网安备 33010602011771号