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