50. Pow(x, n)
题目
Implement pow(x, n).
思路
将加法运算(*)变成乘法运算(^)。 比如:
2^9 = 2* (2^(2^2))
代码
# @param {Float} x # @param {Integer} n # @return {Float} def my_pow(x, n) if x == 0 then return 0 end if n == 0 then return 1 end if n == 1 then return x end if n < 0 then return 1.0/my_pow(x,-n) end res = 1 while (n != 0) t = n % 2 res *= if t == 0 then 1 else x end x = x**2 n = (n-t)/2 end res end