问题描述:
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
分析:
此题很简单就是简单的python求次方运算(a的b次方),差不多可以三种小方法解决:
1)a**b
2)pow(a,b)
3) import math
math.pow(a,b)
代码如下:
# -*- coding:utf-8 -*-
class Solution:
def Power(self, base, exponent):
# write code here
import math
return math.pow(base,exponent)
#return pow(base,exponent)
#return base**exponent
我们发现我们使用的方法是调用了系统函数,面试时候应该是不愿意看到我们这种解决方案的,可能会考察次方运算中,底和幂分布是0以及幂次项为正为负等情况的代码实现,接下来我们分情况发散思维解决次方运算的问题。代码如下:
# -*- coding:utf-8 -*-
class Solution:
def Power(self, base, exponent):
# write code here
result = 1
if base == 0:
return 0
if exponent == 0:
return 1
if exponent < 0:
for i in range(-exponent):
result = result * base
return 1/result
for i in range(exponent):
result = result * base
return result