题目描述:
实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。
示例 1:
输入: 2.00000, 10
输出: 1024.00000
示例 2:
输入: 2.10000, 3
输出: 9.26100
示例 3:
输入: 2.00000, -2
输出: 0.25000
解题思路:
递归的解法
代码1:
class Solution:
def myPow(self, x, n):
if x == 1.0: return 1
if n == 0: return 1
if n == 1: return x
if n < 0: return 1/self.myPow(x, -n)
half = self.myPow(x, n//2)
if(n%2 == 0):
return half*half
else:
return half*half*x
s = Solution()
base = 0.00001
exponent = 2147483647
print(s.myPow(base, exponent))
拓展:
题目描述:
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
保证base和exponent不同时为0
解题思路:
由于规定了int类型的整数exponent,所以其不会超过int的范围
代码3:
class Solution(object):
def myPow(self, x, n):
ans = 1
if n < 0:
for i in range(-n):
ans = ans * x
return 1/ans
for i in range(n):
ans = ans * x
return ans
s = Solution()
base = 1.5
exponent = 2
print(s.myPow(base, exponent))
题目来源:
https://leetcode-cn.com/problems/shu-zhi-de-zheng-shu-ci-fang-lcof/